@pdtf/schemas 3.6.0-4 → 3.6.0-41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/.claude/plans/not-seeing-associated-costs.md +99 -0
  2. package/.claude/settings.local.json +22 -3
  3. package/README.md +52 -33
  4. package/docs/sef25-extensions-ui-spec.md +355 -0
  5. package/index.js +130 -66
  6. package/package.json +4 -2
  7. package/src/examples/v3/exampleTransaction.json +3 -3
  8. package/src/schemas/v3/combined.json +7651 -1672
  9. package/src/schemas/v3/compactSkeleton.txt +365 -14
  10. package/src/schemas/v3/overlays/baspi4.json +163 -18
  11. package/src/schemas/v3/overlays/baspi5.json +168 -20
  12. package/src/schemas/v3/overlays/extensions/as.json +4 -2
  13. package/src/schemas/v3/overlays/extensions/dk.json +32 -0
  14. package/src/schemas/v3/overlays/extensions/dr.json +9 -9
  15. package/src/schemas/v3/overlays/extensions/er.json +4 -2
  16. package/src/schemas/v3/overlays/extensions/fd.json +6 -3
  17. package/src/schemas/v3/overlays/extensions/hi.json +6 -3
  18. package/src/schemas/v3/overlays/extensions/hs.json +4 -2
  19. package/src/schemas/v3/overlays/extensions/ic.json +59 -0
  20. package/src/schemas/v3/overlays/extensions/jk.json +28 -8
  21. package/src/schemas/v3/overlays/extensions/la.json +4 -2
  22. package/src/schemas/v3/overlays/extensions/lc.json +75 -0
  23. package/src/schemas/v3/overlays/extensions/ma.json +6 -3
  24. package/src/schemas/v3/overlays/extensions/mc.json +4 -2
  25. package/src/schemas/v3/overlays/extensions/mi.json +69 -0
  26. package/src/schemas/v3/overlays/extensions/nd.json +43 -0
  27. package/src/schemas/v3/overlays/extensions/oa.json +4 -2
  28. package/src/schemas/v3/overlays/extensions/oc.json +4 -2
  29. package/src/schemas/v3/overlays/extensions/pc.json +37 -0
  30. package/src/schemas/v3/overlays/extensions/ph.json +194 -0
  31. package/src/schemas/v3/overlays/extensions/rw.json +68 -0
  32. package/src/schemas/v3/overlays/extensions/sb.json +4 -2
  33. package/src/schemas/v3/overlays/extensions/sc.json +129 -0
  34. package/src/schemas/v3/overlays/extensions/sd.json +63 -0
  35. package/src/schemas/v3/overlays/extensions/sf.json +4 -2
  36. package/src/schemas/v3/overlays/extensions/sl.json +4 -2
  37. package/src/schemas/v3/overlays/extensions/tf.json +6 -3
  38. package/src/schemas/v3/overlays/extensions/tr.json +73 -0
  39. package/src/schemas/v3/overlays/extensions/wg.json +350 -0
  40. package/src/schemas/v3/overlays/fme1.json +16 -14
  41. package/src/schemas/v3/overlays/lpe1.json +60 -30
  42. package/src/schemas/v3/overlays/nts.json +68 -1
  43. package/src/schemas/v3/overlays/nts2.json +68 -4
  44. package/src/schemas/v3/overlays/ntsl.json +68 -1
  45. package/src/schemas/v3/overlays/ntsl2.json +68 -4
  46. package/src/schemas/v3/overlays/piq.json +38 -1
  47. package/src/schemas/v3/overlays/rds.json +118 -6
  48. package/src/schemas/v3/overlays/sef25.json +1067 -0
  49. package/src/schemas/v3/overlays/ta6.json +46 -16
  50. package/src/schemas/v3/overlays/ta6ed6.json +6498 -0
  51. package/src/schemas/v3/overlays/ta7.json +70 -6
  52. package/src/schemas/v3/overlays/ta7ed5.json +1539 -0
  53. package/src/schemas/v3/pdtf-transaction.json +4361 -676
  54. package/src/schemas/v3/skeleton.json +505 -36
  55. package/src/tests/v3/buyerCircumstances.test.js +543 -0
  56. package/src/tests/v3/extensionOverlays.test.js +911 -0
  57. package/src/tests/v3/offers.test.js +37 -40
  58. package/src/tests/v3/patternProperties.test.js +149 -30
  59. package/src/tests/v3/ta6ed6.test.js +2317 -0
  60. package/src/tests/v3/ta7ed5.test.js +567 -0
  61. package/src/tests/v3/transactionSchema.test.js +31 -0
  62. package/src/utils/extractExtensionOverlays.js +216 -31
  63. package/src/utils/extractOverlay.js +88 -23
  64. package/src/utils/pathSkeleton.js +1 -1
@@ -0,0 +1,1067 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://trust.propdata.org.uk/schemas/v3/overlays/sef25.json",
4
+ "properties": {
5
+ "propertyPack": {
6
+ "properties": {
7
+ "ownership": {
8
+ "sef25Ref": "T1",
9
+ "properties": {
10
+ "ownershipsToBeTransferred": {
11
+ "items": {
12
+ "oneOf": [
13
+ {
14
+ "required": [
15
+ "titleRestrictions"
16
+ ],
17
+ "properties": {
18
+ "titleRestrictions": {
19
+ "sef25Ref": "T1.1",
20
+ "discriminator": {
21
+ "propertyName": "yesNo"
22
+ },
23
+ "oneOf": [
24
+ {
25
+ "properties": {
26
+ "yesNo": {
27
+ "enum": [
28
+ "No"
29
+ ]
30
+ }
31
+ }
32
+ },
33
+ {
34
+ "properties": {
35
+ "yesNo": {
36
+ "enum": [
37
+ "Yes"
38
+ ]
39
+ },
40
+ "details": {
41
+ "sef25Ref": "T1.1.2"
42
+ }
43
+ },
44
+ "required": [
45
+ "details"
46
+ ]
47
+ }
48
+ ],
49
+ "required": [
50
+ "yesNo"
51
+ ],
52
+ "properties": {
53
+ "yesNo": {
54
+ "sef25Ref": "T1.1.1"
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ ]
61
+ }
62
+ }
63
+ }
64
+ },
65
+ "parking": {
66
+ "sef25Ref": "K1",
67
+ "required": [
68
+ "droppedKerbAccess"
69
+ ],
70
+ "properties": {
71
+ "controlledParking": {
72
+ "oneOf": [
73
+ null,
74
+ {
75
+ "required": [
76
+ "costOfPermit",
77
+ "costOfPermitFrequency"
78
+ ],
79
+ "properties": {
80
+ "costOfPermit": {
81
+ "sef25Ref": "P1.1"
82
+ },
83
+ "costOfPermitFrequency": {
84
+ "sef25Ref": "P1.2"
85
+ }
86
+ }
87
+ }
88
+ ]
89
+ },
90
+ "droppedKerbAccess": {
91
+ "sef25Ref": "K1.1",
92
+ "required": [
93
+ "yesNo"
94
+ ],
95
+ "properties": {
96
+ "yesNo": {
97
+ "sef25Ref": "K1.1.1"
98
+ }
99
+ }
100
+ }
101
+ }
102
+ },
103
+ "notices": {
104
+ "sef25Ref": "N1",
105
+ "properties": {
106
+ "neighbourDevelopment": {
107
+ "sef25Ref": "N1.1",
108
+ "discriminator": {
109
+ "propertyName": "yesNo"
110
+ },
111
+ "oneOf": [
112
+ {
113
+ "properties": {
114
+ "yesNo": {
115
+ "enum": [
116
+ "No"
117
+ ]
118
+ }
119
+ }
120
+ },
121
+ {
122
+ "properties": {
123
+ "yesNo": {
124
+ "enum": [
125
+ "Yes"
126
+ ]
127
+ }
128
+ }
129
+ }
130
+ ]
131
+ }
132
+ }
133
+ },
134
+ "specialistIssues": {
135
+ "required": [
136
+ "wellsDitchesShaft",
137
+ "damagedOrExposedElectrics",
138
+ "damageToFlooringOrStaircases",
139
+ "knownAreasInPoorCondition"
140
+ ],
141
+ "properties": {
142
+ "wellsDitchesShaft": {
143
+ "sef25Ref": "H1.1",
144
+ "discriminator": {
145
+ "propertyName": "yesNo"
146
+ },
147
+ "oneOf": [
148
+ {
149
+ "properties": {
150
+ "yesNo": {
151
+ "enum": [
152
+ "No"
153
+ ]
154
+ }
155
+ }
156
+ },
157
+ {
158
+ "properties": {
159
+ "yesNo": {
160
+ "enum": [
161
+ "Yes"
162
+ ]
163
+ },
164
+ "details": {
165
+ "sef25Ref": "H1.1.2"
166
+ }
167
+ },
168
+ "required": [
169
+ "details"
170
+ ]
171
+ }
172
+ ],
173
+ "required": [
174
+ "yesNo"
175
+ ],
176
+ "properties": {
177
+ "yesNo": {
178
+ "sef25Ref": "H1.1.1"
179
+ }
180
+ }
181
+ },
182
+ "damagedOrExposedElectrics": {
183
+ "sef25Ref": "H1.2",
184
+ "discriminator": {
185
+ "propertyName": "yesNo"
186
+ },
187
+ "oneOf": [
188
+ {
189
+ "properties": {
190
+ "yesNo": {
191
+ "enum": [
192
+ "No"
193
+ ]
194
+ }
195
+ }
196
+ },
197
+ {
198
+ "properties": {
199
+ "yesNo": {
200
+ "enum": [
201
+ "Yes"
202
+ ]
203
+ },
204
+ "details": {
205
+ "sef25Ref": "H1.2.2"
206
+ }
207
+ },
208
+ "required": [
209
+ "details"
210
+ ]
211
+ }
212
+ ],
213
+ "required": [
214
+ "yesNo"
215
+ ],
216
+ "properties": {
217
+ "yesNo": {
218
+ "sef25Ref": "H1.2.1"
219
+ }
220
+ }
221
+ },
222
+ "damageToFlooringOrStaircases": {
223
+ "sef25Ref": "H1.3",
224
+ "discriminator": {
225
+ "propertyName": "yesNo"
226
+ },
227
+ "oneOf": [
228
+ {
229
+ "properties": {
230
+ "yesNo": {
231
+ "enum": [
232
+ "No"
233
+ ]
234
+ }
235
+ }
236
+ },
237
+ {
238
+ "properties": {
239
+ "yesNo": {
240
+ "enum": [
241
+ "Yes"
242
+ ]
243
+ },
244
+ "details": {
245
+ "sef25Ref": "H1.3.2"
246
+ }
247
+ },
248
+ "required": [
249
+ "details"
250
+ ]
251
+ }
252
+ ],
253
+ "required": [
254
+ "yesNo"
255
+ ],
256
+ "properties": {
257
+ "yesNo": {
258
+ "sef25Ref": "H1.3.1"
259
+ }
260
+ }
261
+ },
262
+ "knownAreasInPoorCondition": {
263
+ "sef25Ref": "H1.4",
264
+ "discriminator": {
265
+ "propertyName": "yesNo"
266
+ },
267
+ "oneOf": [
268
+ {
269
+ "properties": {
270
+ "yesNo": {
271
+ "enum": [
272
+ "No"
273
+ ]
274
+ }
275
+ }
276
+ },
277
+ {
278
+ "properties": {
279
+ "yesNo": {
280
+ "enum": [
281
+ "Yes"
282
+ ]
283
+ },
284
+ "details": {
285
+ "sef25Ref": "H1.4.2"
286
+ }
287
+ },
288
+ "required": [
289
+ "details"
290
+ ]
291
+ }
292
+ ],
293
+ "required": [
294
+ "yesNo"
295
+ ],
296
+ "properties": {
297
+ "yesNo": {
298
+ "sef25Ref": "H1.4.1"
299
+ }
300
+ }
301
+ }
302
+ }
303
+ },
304
+ "electricity": {
305
+ "sef25Ref": "S1",
306
+ "properties": {
307
+ "solarPanels": {
308
+ "sef25Ref": "S1",
309
+ "discriminator": {
310
+ "propertyName": "yesNo"
311
+ },
312
+ "oneOf": [
313
+ {
314
+ "properties": {
315
+ "yesNo": {
316
+ "enum": [
317
+ "No"
318
+ ]
319
+ }
320
+ }
321
+ },
322
+ {
323
+ "properties": {
324
+ "yesNo": {
325
+ "enum": [
326
+ "Yes"
327
+ ]
328
+ },
329
+ "panelsOwnedOutright": {
330
+ "sef25Ref": "S1.1",
331
+ "discriminator": {
332
+ "propertyName": "yesNo"
333
+ },
334
+ "oneOf": [
335
+ {
336
+ "properties": {
337
+ "yesNo": {
338
+ "enum": [
339
+ "Yes"
340
+ ]
341
+ }
342
+ }
343
+ },
344
+ {
345
+ "properties": {
346
+ "yesNo": {
347
+ "enum": [
348
+ "No"
349
+ ]
350
+ },
351
+ "associatedCost": {
352
+ "sef25Ref": "S1.1",
353
+ "discriminator": {
354
+ "propertyName": "frequency"
355
+ },
356
+ "oneOf": [
357
+ {
358
+ "properties": {
359
+ "frequency": {
360
+ "enum": [
361
+ "Not applicable"
362
+ ]
363
+ }
364
+ }
365
+ },
366
+ {
367
+ "properties": {
368
+ "frequency": {
369
+ "enum": [
370
+ "Per month",
371
+ "Per year"
372
+ ]
373
+ },
374
+ "amount": {
375
+ "sef25Ref": "S1.1.1"
376
+ }
377
+ }
378
+ }
379
+ ],
380
+ "required": [
381
+ "frequency"
382
+ ],
383
+ "properties": {
384
+ "frequency": {
385
+ "sef25Ref": "S1.1.2"
386
+ }
387
+ }
388
+ }
389
+ }
390
+ }
391
+ ]
392
+ }
393
+ }
394
+ },
395
+ {
396
+ "properties": {
397
+ "yesNo": {
398
+ "enum": [
399
+ "To be connected"
400
+ ]
401
+ }
402
+ }
403
+ }
404
+ ]
405
+ }
406
+ }
407
+ },
408
+ "waterAndDrainage": {
409
+ "properties": {
410
+ "water": {
411
+ "properties": {
412
+ "mainsWater": {
413
+ "oneOf": [
414
+ {
415
+ "required": [
416
+ "associatedCost"
417
+ ],
418
+ "properties": {
419
+ "associatedCost": {
420
+ "sef25Ref": "U1.1",
421
+ "discriminator": {
422
+ "propertyName": "frequency"
423
+ },
424
+ "oneOf": [
425
+ {
426
+ "properties": {
427
+ "frequency": {
428
+ "enum": [
429
+ "Not applicable"
430
+ ]
431
+ }
432
+ }
433
+ },
434
+ {
435
+ "properties": {
436
+ "frequency": {
437
+ "enum": [
438
+ "Per month",
439
+ "Per year"
440
+ ]
441
+ },
442
+ "amount": {
443
+ "sef25Ref": "U1.1.1"
444
+ }
445
+ }
446
+ }
447
+ ],
448
+ "required": [
449
+ "frequency"
450
+ ],
451
+ "properties": {
452
+ "frequency": {
453
+ "sef25Ref": "U1.1.2"
454
+ }
455
+ }
456
+ }
457
+ }
458
+ }
459
+ ]
460
+ }
461
+ }
462
+ },
463
+ "drainage": {
464
+ "properties": {
465
+ "mainsFoulDrainage": {
466
+ "oneOf": [
467
+ null,
468
+ null,
469
+ {
470
+ "required": [
471
+ "associatedCost"
472
+ ],
473
+ "properties": {
474
+ "associatedCost": {
475
+ "sef25Ref": "U1.2",
476
+ "discriminator": {
477
+ "propertyName": "frequency"
478
+ },
479
+ "oneOf": [
480
+ {
481
+ "properties": {
482
+ "frequency": {
483
+ "enum": [
484
+ "Not applicable"
485
+ ]
486
+ }
487
+ }
488
+ },
489
+ {
490
+ "properties": {
491
+ "frequency": {
492
+ "enum": [
493
+ "Per month",
494
+ "Per year"
495
+ ]
496
+ },
497
+ "amount": {
498
+ "sef25Ref": "U1.2.1"
499
+ }
500
+ }
501
+ }
502
+ ],
503
+ "required": [
504
+ "frequency"
505
+ ],
506
+ "properties": {
507
+ "frequency": {
508
+ "sef25Ref": "U1.2.2"
509
+ }
510
+ }
511
+ }
512
+ }
513
+ }
514
+ ]
515
+ }
516
+ }
517
+ }
518
+ }
519
+ },
520
+ "insurance": {
521
+ "sef25Ref": "I1",
522
+ "discriminator": {
523
+ "propertyName": "isInsured"
524
+ },
525
+ "oneOf": [
526
+ {
527
+ "properties": {
528
+ "isInsured": {
529
+ "enum": [
530
+ "No"
531
+ ]
532
+ }
533
+ }
534
+ },
535
+ {
536
+ "properties": {
537
+ "isInsured": {
538
+ "enum": [
539
+ "Yes"
540
+ ]
541
+ },
542
+ "insuranceClaims": {
543
+ "sef25Ref": "I1.1",
544
+ "discriminator": {
545
+ "propertyName": "yesNo"
546
+ },
547
+ "oneOf": [
548
+ {
549
+ "properties": {
550
+ "yesNo": {
551
+ "enum": [
552
+ "No"
553
+ ]
554
+ }
555
+ }
556
+ },
557
+ {
558
+ "properties": {
559
+ "yesNo": {
560
+ "enum": [
561
+ "Yes"
562
+ ]
563
+ }
564
+ }
565
+ }
566
+ ],
567
+ "required": [
568
+ "yesNo"
569
+ ],
570
+ "properties": {
571
+ "yesNo": {
572
+ "sef25Ref": "I1.1.1"
573
+ }
574
+ }
575
+ }
576
+ },
577
+ "required": [
578
+ "insuranceClaims"
579
+ ]
580
+ }
581
+ ]
582
+ },
583
+ "rightsAndInformalArrangements": {
584
+ "sef25Ref": "R1",
585
+ "properties": {
586
+ "rightsOrArrangements": {
587
+ "sef25Ref": "R1",
588
+ "required": [
589
+ "privateRightOfWay"
590
+ ],
591
+ "properties": {
592
+ "privateRightOfWay": {
593
+ "sef25Ref": "R1.1",
594
+ "discriminator": {
595
+ "propertyName": "yesNo"
596
+ },
597
+ "oneOf": [
598
+ {
599
+ "properties": {
600
+ "yesNo": {
601
+ "enum": [
602
+ "No"
603
+ ]
604
+ }
605
+ }
606
+ },
607
+ {
608
+ "properties": {
609
+ "yesNo": {
610
+ "enum": [
611
+ "Yes"
612
+ ]
613
+ },
614
+ "details": {
615
+ "sef25Ref": "R1.1.2"
616
+ }
617
+ },
618
+ "required": [
619
+ "details"
620
+ ]
621
+ }
622
+ ],
623
+ "required": [
624
+ "yesNo"
625
+ ],
626
+ "properties": {
627
+ "yesNo": {
628
+ "sef25Ref": "R1.1.1"
629
+ }
630
+ }
631
+ }
632
+ }
633
+ }
634
+ }
635
+ },
636
+ "environmentalIssues": {
637
+ "sef25Ref": "E1",
638
+ "required": [
639
+ "stormFireFloodDamage"
640
+ ],
641
+ "properties": {
642
+ "flooding": {
643
+ "properties": {
644
+ "historicalFlooding": {
645
+ "properties": {
646
+ "hasBeenFlooded": {
647
+ "sef25Ref": "E1.2"
648
+ }
649
+ }
650
+ }
651
+ }
652
+ },
653
+ "stormFireFloodDamage": {
654
+ "sef25Ref": "E1.1",
655
+ "discriminator": {
656
+ "propertyName": "yesNo"
657
+ },
658
+ "oneOf": [
659
+ {
660
+ "properties": {
661
+ "yesNo": {
662
+ "enum": [
663
+ "No"
664
+ ]
665
+ }
666
+ }
667
+ },
668
+ {
669
+ "properties": {
670
+ "yesNo": {
671
+ "enum": [
672
+ "Yes"
673
+ ]
674
+ },
675
+ "details": {
676
+ "sef25Ref": "E1.1.2"
677
+ }
678
+ },
679
+ "required": [
680
+ "details"
681
+ ]
682
+ }
683
+ ],
684
+ "required": [
685
+ "yesNo"
686
+ ],
687
+ "properties": {
688
+ "yesNo": {
689
+ "sef25Ref": "E1.1.1"
690
+ }
691
+ }
692
+ }
693
+ }
694
+ },
695
+ "additionalInformation": {
696
+ "sef25Ref": "M1",
697
+ "required": [
698
+ "otherMaterialIssue"
699
+ ],
700
+ "properties": {
701
+ "otherMaterialIssue": {
702
+ "sef25Ref": "M1.1",
703
+ "discriminator": {
704
+ "propertyName": "yesNo"
705
+ },
706
+ "oneOf": [
707
+ {
708
+ "properties": {
709
+ "yesNo": {
710
+ "enum": [
711
+ "No"
712
+ ]
713
+ }
714
+ }
715
+ },
716
+ {
717
+ "properties": {
718
+ "yesNo": {
719
+ "enum": [
720
+ "Yes"
721
+ ]
722
+ },
723
+ "details": {
724
+ "sef25Ref": "M1.1.2"
725
+ }
726
+ },
727
+ "required": [
728
+ "details"
729
+ ]
730
+ }
731
+ ],
732
+ "required": [
733
+ "yesNo"
734
+ ],
735
+ "properties": {
736
+ "yesNo": {
737
+ "sef25Ref": "M1.1.1"
738
+ }
739
+ }
740
+ }
741
+ }
742
+ },
743
+ "guaranteesWarrantiesAndIndemnityInsurances": {
744
+ "sef25Ref": "W1",
745
+ "discriminator": {
746
+ "propertyName": "hasValidGuaranteesOrWarranties"
747
+ },
748
+ "oneOf": [
749
+ {
750
+ "properties": {
751
+ "hasValidGuaranteesOrWarranties": {
752
+ "enum": [
753
+ "No"
754
+ ]
755
+ }
756
+ }
757
+ },
758
+ {
759
+ "properties": {
760
+ "hasValidGuaranteesOrWarranties": {
761
+ "enum": [
762
+ "Yes"
763
+ ]
764
+ },
765
+ "newHomeWarranty": {
766
+ "sef25Ref": "W1.1",
767
+ "discriminator": {
768
+ "propertyName": "yesNo"
769
+ },
770
+ "oneOf": [
771
+ {
772
+ "properties": {
773
+ "yesNo": {
774
+ "enum": [
775
+ "No"
776
+ ]
777
+ }
778
+ }
779
+ },
780
+ {
781
+ "properties": {
782
+ "yesNo": {
783
+ "enum": [
784
+ "Yes"
785
+ ]
786
+ }
787
+ }
788
+ }
789
+ ],
790
+ "required": [
791
+ "yesNo"
792
+ ],
793
+ "properties": {
794
+ "yesNo": {
795
+ "sef25Ref": "W1.1.1"
796
+ }
797
+ }
798
+ },
799
+ "roofingWork": {
800
+ "sef25Ref": "W1.2",
801
+ "discriminator": {
802
+ "propertyName": "yesNo"
803
+ },
804
+ "oneOf": [
805
+ {
806
+ "properties": {
807
+ "yesNo": {
808
+ "enum": [
809
+ "No"
810
+ ]
811
+ }
812
+ }
813
+ },
814
+ {
815
+ "properties": {
816
+ "yesNo": {
817
+ "enum": [
818
+ "Yes"
819
+ ]
820
+ }
821
+ }
822
+ }
823
+ ],
824
+ "required": [
825
+ "yesNo"
826
+ ],
827
+ "properties": {
828
+ "yesNo": {
829
+ "sef25Ref": "W1.2.1"
830
+ }
831
+ }
832
+ },
833
+ "dampProofingTreatment": {
834
+ "sef25Ref": "W1.3",
835
+ "discriminator": {
836
+ "propertyName": "yesNo"
837
+ },
838
+ "oneOf": [
839
+ {
840
+ "properties": {
841
+ "yesNo": {
842
+ "enum": [
843
+ "No"
844
+ ]
845
+ }
846
+ }
847
+ },
848
+ {
849
+ "properties": {
850
+ "yesNo": {
851
+ "enum": [
852
+ "Yes"
853
+ ]
854
+ }
855
+ }
856
+ }
857
+ ],
858
+ "required": [
859
+ "yesNo"
860
+ ],
861
+ "properties": {
862
+ "yesNo": {
863
+ "sef25Ref": "W1.3.1"
864
+ }
865
+ }
866
+ },
867
+ "centralHeatingAndorPlumbing": {
868
+ "sef25Ref": "W1.4",
869
+ "discriminator": {
870
+ "propertyName": "yesNo"
871
+ },
872
+ "oneOf": [
873
+ {
874
+ "properties": {
875
+ "yesNo": {
876
+ "enum": [
877
+ "No"
878
+ ]
879
+ }
880
+ }
881
+ },
882
+ {
883
+ "properties": {
884
+ "yesNo": {
885
+ "enum": [
886
+ "Yes"
887
+ ]
888
+ }
889
+ }
890
+ }
891
+ ],
892
+ "required": [
893
+ "yesNo"
894
+ ],
895
+ "properties": {
896
+ "yesNo": {
897
+ "sef25Ref": "W1.4.1"
898
+ }
899
+ }
900
+ },
901
+ "doubleGlazing": {
902
+ "sef25Ref": "W1.8",
903
+ "discriminator": {
904
+ "propertyName": "yesNo"
905
+ },
906
+ "oneOf": [
907
+ {
908
+ "properties": {
909
+ "yesNo": {
910
+ "enum": [
911
+ "No"
912
+ ]
913
+ }
914
+ }
915
+ },
916
+ {
917
+ "properties": {
918
+ "yesNo": {
919
+ "enum": [
920
+ "Yes"
921
+ ]
922
+ }
923
+ }
924
+ }
925
+ ],
926
+ "required": [
927
+ "yesNo"
928
+ ],
929
+ "properties": {
930
+ "yesNo": {
931
+ "sef25Ref": "W1.8.1"
932
+ }
933
+ }
934
+ },
935
+ "electricalRepairOrInstallation": {
936
+ "sef25Ref": "W1.5",
937
+ "discriminator": {
938
+ "propertyName": "yesNo"
939
+ },
940
+ "oneOf": [
941
+ {
942
+ "properties": {
943
+ "yesNo": {
944
+ "enum": [
945
+ "No"
946
+ ]
947
+ }
948
+ }
949
+ },
950
+ {
951
+ "properties": {
952
+ "yesNo": {
953
+ "enum": [
954
+ "Yes"
955
+ ]
956
+ }
957
+ }
958
+ }
959
+ ],
960
+ "required": [
961
+ "yesNo"
962
+ ],
963
+ "properties": {
964
+ "yesNo": {
965
+ "sef25Ref": "W1.5.1"
966
+ }
967
+ }
968
+ },
969
+ "subsidenceWork": {
970
+ "sef25Ref": "W1.6",
971
+ "discriminator": {
972
+ "propertyName": "yesNo"
973
+ },
974
+ "oneOf": [
975
+ {
976
+ "properties": {
977
+ "yesNo": {
978
+ "enum": [
979
+ "No"
980
+ ]
981
+ }
982
+ }
983
+ },
984
+ {
985
+ "properties": {
986
+ "yesNo": {
987
+ "enum": [
988
+ "Yes"
989
+ ]
990
+ }
991
+ }
992
+ }
993
+ ],
994
+ "required": [
995
+ "yesNo"
996
+ ],
997
+ "properties": {
998
+ "yesNo": {
999
+ "sef25Ref": "W1.6.1"
1000
+ }
1001
+ }
1002
+ },
1003
+ "otherGuarantees": {
1004
+ "sef25Ref": "W1.7",
1005
+ "discriminator": {
1006
+ "propertyName": "yesNo"
1007
+ },
1008
+ "oneOf": [
1009
+ {
1010
+ "properties": {
1011
+ "yesNo": {
1012
+ "enum": [
1013
+ "No"
1014
+ ]
1015
+ }
1016
+ }
1017
+ },
1018
+ {
1019
+ "properties": {
1020
+ "yesNo": {
1021
+ "enum": [
1022
+ "Yes"
1023
+ ]
1024
+ },
1025
+ "details": {
1026
+ "sef25Ref": "W1.7.2"
1027
+ }
1028
+ },
1029
+ "required": [
1030
+ "details"
1031
+ ]
1032
+ }
1033
+ ],
1034
+ "required": [
1035
+ "yesNo"
1036
+ ],
1037
+ "properties": {
1038
+ "yesNo": {
1039
+ "sef25Ref": "W1.7.1"
1040
+ }
1041
+ }
1042
+ }
1043
+ },
1044
+ "required": [
1045
+ "newHomeWarranty",
1046
+ "roofingWork",
1047
+ "dampProofingTreatment",
1048
+ "centralHeatingAndorPlumbing",
1049
+ "electricalRepairOrInstallation",
1050
+ "subsidenceWork",
1051
+ "otherGuarantees"
1052
+ ]
1053
+ }
1054
+ ],
1055
+ "required": [
1056
+ "hasValidGuaranteesOrWarranties"
1057
+ ],
1058
+ "properties": {
1059
+ "hasValidGuaranteesOrWarranties": {
1060
+ "sef25Ref": "W1.0"
1061
+ }
1062
+ }
1063
+ }
1064
+ }
1065
+ }
1066
+ }
1067
+ }