4c1ee50dc9
F1 [WARNING] The 'no invisible coverage hole' guard enumerated only schema.nodes, so MARK attributes silently escaped the value-fuzz completeness check — link.internal/target/rel/class are never fuzzed and nothing flagged it, and a new attributed mark would slip through. Added allSchemaMarkAttrKeys() plus a MARK_ATTR_FUZZED / MARK_ATTR_ALLOWLIST registry and two tests: every schema mark attr must be in exactly one set (a new one turns it red), and neither set may hold a stale row. F2 [WARNING] The ACCEPTED annotation misclassified table colspan/rowspan as having 'no md representation'. They DO round-trip — a spanned cell makes the converter emit the whole table as a raw <table> with colspan/rowspan, which the tiptap parser reads back. They are frozen only because generating a geometrically-valid spanned table is deferred PR-2 structural work (the flat generator hardcodes span = 1), not a markdown limit. Reclassified them as DEFERRED-BUG (distinct from ACCEPTED) so a maintainer does not read them as an inherent limitation; colwidth / backgroundColor(Name) stay ACCEPTED (the raw-<table> fallback drops them). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>