@mica/sdk (SDK contract v1)
    Preparing search index...

    Function buildSchemes

    • Both schemes for one seed.

      Light is generated even though only dark is wired up, because the assignment tables are MCU's rather than ours — building one and not the other would save nothing and would leave the shape of the module implying a choice that has not been made. Turning light on later is a change to which record shell/state/theme.ts reads.

      SchemeVibrant rather than SchemeTonalSpot, which is M3's own default.

      TonalSpot is documented as "low to medium colorfulness" and interprets a seed rather than reproducing it, so a saturated pick came back noticeably muted — a player who chose hot pink got mauve, which reads as the setting not working. Measured across eleven seeds in both schemes, Vibrant carries about half again as much chroma on primary (53.6 against 35.3) for identical worst-case contrast: 6.43 either way, against the 4.5 the tests require.

      That last part is why this is Vibrant and not SchemeFidelity, which is the obvious candidate for "respect what they picked". Fidelity preserves the source's own chroma and so barely beats TonalSpot (36.8), while dropping worst-case contrast to 4.53 — passing, but with no margin left for a seed nobody has tried yet. Vibrant is more colorful and safer at the same time, which is not the trade-off it looks like.

      Parameters

      • seedHex: string

      Returns { dark: M3Tokens; light: M3Tokens }