"""Illustrative application/index compatibility; no flag provider or search engine."""
import json
v1={'schema':1,'title':'Filter'}
v2={'schema':2,'display':{'title':'Filter'},'tokens':['filter']}
def old_reader(r):
 if r['schema']!=1:raise ValueError('unsupported schema')
 return r['title']
def new_reader(r):
 if r['schema']==1:return r['title']
 if r['schema']==2:return r['display']['title']
 raise ValueError('unsupported schema')
rows=[]
for name,reader in [('V1',old_reader),('V2',new_reader)]:
 for version,record in [(1,v1),(2,v2)]:
  try:result=reader(record)
  except ValueError:result='unsupported schema'
  rows.append({'reader':name,'recordSchema':version,'result':result})
assert [r['result'] for r in rows]==['Filter','unsupported schema','Filter','Filter']
report={'matrix':rows,'rolloutStates':[{'stage':'Initial','reader':'V1','writer':'schema1','flagOffCompatible':True},{'stage':'Reader rollout','reader':'V2','writer':'schema1','flagOffCompatible':True},{'stage':'Schema2-only writes','reader':'V2','writer':'schema2','flagOffCompatible':False}],'scope':'Local shape checks; not engine deployment, session or remote flag convergence testing'}
if __name__=='__main__':print(json.dumps(report,indent=2))
