spread-fences.ts:12:17 - error SC1090: spread arguments into fixed parameter positions (a spread can only fill a rest parameter) are not supported yet

  11 | const pair: number[] = [1, 2];
  12 | console.log(two(...(pair as [number, number])));
     |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  13 | 

spread-fences.ts:20:21 - error SC1090: conditional spreads beyond `...(c ? { field: v } : {})` (exactly one property against an empty arm — spell other shapes as optional fields) is not supported yet

  19 | const cond = true;
  20 | const s1: Shape = { ...(cond ? { x: 1, y: 2 } : { x: 3, y: 4 }) };
     |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  21 | interface YOnly {

spread-fences.ts:25:27 - error SC1090: object spread after explicit properties (spreads must come first — a later spread would overwrite them with JS semantics the desugar does not model) are not supported yet

  24 | const yPart: YOnly = { y: 0 };
  25 | const s2: Shape = { x: 5, ...yPart };
     |                           ^~~~~~~~
  26 | 

spread-fences.ts:40:18 - error SC2002: record shapes must match exactly: expected '{ n: number; s: string }', got '{ n: number; s: string | undefined }' (structural width subtyping needs a shape coercion that is not supported yet)

  39 | const optSrc: OptSrc = { n: 1 };
  40 | const reqDst = { ...optSrc } as ReqDst;
     |                  ^~~~~~~~~
  41 | console.log(reqDst.n);

  hint: build a new literal with exactly the expected fields instead of passing a wider value