Release v0.3.0
Added
SizeClassCalculator.Compute()(C#) /computeSizeClass()(TypeScript) - computes the current width x height size class from actual available dimensions, shared by every renderer so they all agree on when a class boundary is crossed. (#4)FlowArrangementEvaluator.Evaluate()/evaluateFlowArrangement()- selects the most specific matchingwhen width/height <class>override's tree for the current size class (both dimensions targeted beats one; the last declared wins among equally specific matches), falling back to the base tree when nothing matches. (#4)FreeformArrangementEvaluator.Evaluate()/evaluateFreeformArrangement()- selects the placement variant with an exact size-class match, or nothing - deliberately no fallback, matching the language's own "warn, don't silently pick" design for a size class with no matching variant. (#4)FlowArrangementgained anOverrideslist (C#) /overrides(TypeScript) - the model previously had no field at all for Screenplay'swhen width/height <class>override construct, unlikeFreeformArrangementwhich was already keyed by size class.- A shared JSON fixture corpus (
layout-evaluation-fixtures.json) asserted independently by both the C# and TypeScript specs, following the same pattern established for the package resolver in #3/#9.
Notes
Per Scene#8's original design (confirmed against its merged PR description), Slot.Arrangement is per-slot, not per-layout - this evaluation engine works against that shape as-is and does not assume every slot in a layout shares one arrangement mode.