@pdtf/schemas 3.6.0-2 → 3.6.0-21

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 (35) hide show
  1. package/.claude/settings.local.json +17 -2
  2. package/docs/sef25-extensions-ui-spec.md +146 -0
  3. package/index.js +97 -58
  4. package/package.json +4 -2
  5. package/src/schemas/v3/combined.json +7013 -1313
  6. package/src/schemas/v3/compactSkeleton.txt +353 -11
  7. package/src/schemas/v3/overlays/baspi4.json +161 -17
  8. package/src/schemas/v3/overlays/baspi5.json +166 -19
  9. package/src/schemas/v3/overlays/extensions/jk.json +24 -6
  10. package/src/schemas/v3/overlays/extensions/pc.json +36 -0
  11. package/src/schemas/v3/overlays/extensions/ph.json +197 -0
  12. package/src/schemas/v3/overlays/extensions/sc.json +83 -0
  13. package/src/schemas/v3/overlays/fme1.json +16 -14
  14. package/src/schemas/v3/overlays/lpe1.json +60 -30
  15. package/src/schemas/v3/overlays/nts.json +68 -1
  16. package/src/schemas/v3/overlays/nts2.json +68 -1
  17. package/src/schemas/v3/overlays/ntsl.json +68 -1
  18. package/src/schemas/v3/overlays/ntsl2.json +68 -1
  19. package/src/schemas/v3/overlays/piq.json +38 -1
  20. package/src/schemas/v3/overlays/rds.json +118 -6
  21. package/src/schemas/v3/overlays/ta6.json +40 -14
  22. package/src/schemas/v3/overlays/ta6ed6.json +6436 -0
  23. package/src/schemas/v3/overlays/ta7.json +70 -6
  24. package/src/schemas/v3/overlays/ta7ed5.json +1539 -0
  25. package/src/schemas/v3/pdtf-transaction.json +4098 -615
  26. package/src/schemas/v3/skeleton.json +491 -34
  27. package/src/tests/v3/buyerCircumstances.test.js +543 -0
  28. package/src/tests/v3/extensionOverlays.test.js +436 -0
  29. package/src/tests/v3/offers.test.js +37 -40
  30. package/src/tests/v3/patternProperties.test.js +149 -30
  31. package/src/tests/v3/ta6ed6.test.js +2356 -0
  32. package/src/tests/v3/ta7ed5.test.js +567 -0
  33. package/src/utils/extractExtensionOverlays.js +104 -31
  34. package/src/utils/extractOverlay.js +87 -23
  35. package/src/utils/pathSkeleton.js +1 -1
@@ -0,0 +1,1539 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://trust.propdata.org.uk/schemas/v3/overlays/ta7ed5.json",
4
+ "properties": {
5
+ "propertyPack": {
6
+ "required": [
7
+ "address",
8
+ "ownership"
9
+ ],
10
+ "properties": {
11
+ "address": {
12
+ "ta7ed5Ref": "1.1",
13
+ "properties": {
14
+ "line1": {
15
+ "ta7ed5Ref": "1.1.1"
16
+ },
17
+ "line2": {
18
+ "ta7ed5Ref": "1.1.1"
19
+ },
20
+ "line3": {
21
+ "ta7ed5Ref": "1.1.1"
22
+ },
23
+ "town": {
24
+ "ta7ed5Ref": "1.1.1"
25
+ },
26
+ "postcode": {
27
+ "ta7ed5Ref": "1.1.2"
28
+ }
29
+ }
30
+ },
31
+ "uprn": {
32
+ "ta7ed5Ref": "1.1.3"
33
+ },
34
+ "ownership": {
35
+ "ta7ed5Ref": "2",
36
+ "required": [
37
+ "ownershipsToBeTransferred"
38
+ ],
39
+ "properties": {
40
+ "ownershipsToBeTransferred": {
41
+ "ta7ed5Ref": "2",
42
+ "items": {
43
+ "discriminator": {
44
+ "propertyName": "ownershipType"
45
+ },
46
+ "oneOf": [
47
+ {
48
+ "properties": {
49
+ "ownershipType": {
50
+ "enum": [
51
+ "Freehold"
52
+ ]
53
+ }
54
+ }
55
+ },
56
+ {
57
+ "properties": {
58
+ "ownershipType": {
59
+ "enum": [
60
+ "Managed Freehold",
61
+ "Commonhold"
62
+ ]
63
+ }
64
+ }
65
+ },
66
+ {
67
+ "properties": {
68
+ "ownershipType": {
69
+ "enum": [
70
+ "Leasehold"
71
+ ]
72
+ },
73
+ "leaseholdInformation": {
74
+ "ta7ed5Ref": "2",
75
+ "required": [
76
+ "typeOfLeasehold",
77
+ "sharedOwnership",
78
+ "leaseTerm",
79
+ "contactDetails",
80
+ "consents",
81
+ "groundRent",
82
+ "ownershipAndManagement",
83
+ "serviceCharge",
84
+ "disputes",
85
+ "buildingSafetyAct",
86
+ "enfranchisement",
87
+ "buildingSafety",
88
+ "general",
89
+ "requiredDocuments",
90
+ "additionalInformation",
91
+ "confirmationOfAccuracy"
92
+ ],
93
+ "properties": {
94
+ "typeOfLeasehold": {
95
+ "ta7ed5Ref": "2.1",
96
+ "discriminator": {
97
+ "propertyName": "leaseholdType"
98
+ },
99
+ "oneOf": [
100
+ {
101
+ "properties": {
102
+ "leaseholdType": {
103
+ "enum": [
104
+ "Flat",
105
+ "Shared ownership",
106
+ "Long leasehold house",
107
+ "Maisonette",
108
+ "Leasehold garage"
109
+ ]
110
+ }
111
+ }
112
+ },
113
+ {
114
+ "properties": {
115
+ "leaseholdType": {
116
+ "enum": [
117
+ "Other"
118
+ ]
119
+ },
120
+ "otherLeaseholdType": {
121
+ "ta7ed5Ref": "2.1.2"
122
+ }
123
+ },
124
+ "required": [
125
+ "otherLeaseholdType"
126
+ ]
127
+ }
128
+ ],
129
+ "required": [
130
+ "leaseholdType"
131
+ ],
132
+ "properties": {
133
+ "leaseholdType": {
134
+ "ta7ed5Ref": "2.1.1",
135
+ "title": "What is the type of property included in the lease?"
136
+ }
137
+ }
138
+ },
139
+ "contactDetails": {
140
+ "ta7ed5Ref": "3",
141
+ "required": [
142
+ "contacts",
143
+ "serviceContactAssignments"
144
+ ],
145
+ "properties": {
146
+ "contacts": {
147
+ "ta7ed5Ref": "3",
148
+ "properties": {
149
+ "landlord": {
150
+ "ta7ed5Ref": "3.1.1",
151
+ "properties": {
152
+ "contact": {
153
+ "ta7ed5Ref": "3.1.1",
154
+ "properties": {
155
+ "nameOrOrganisation": {
156
+ "ta7ed5Ref": "3.1.1.1"
157
+ },
158
+ "address": {
159
+ "ta7ed5Ref": "3.1.1.2",
160
+ "properties": {
161
+ "line1": {
162
+ "ta7ed5Ref": "3.1.1.2"
163
+ },
164
+ "postcode": {
165
+ "ta7ed5Ref": "3.1.1.2"
166
+ }
167
+ }
168
+ },
169
+ "emailAddress": {
170
+ "ta7ed5Ref": "3.1.1.3"
171
+ }
172
+ }
173
+ }
174
+ }
175
+ },
176
+ "managementCompany": {
177
+ "ta7ed5Ref": "3.1.2",
178
+ "properties": {
179
+ "contact": {
180
+ "ta7ed5Ref": "3.1.2",
181
+ "properties": {
182
+ "nameOrOrganisation": {
183
+ "ta7ed5Ref": "3.1.2.1"
184
+ },
185
+ "address": {
186
+ "ta7ed5Ref": "3.1.2.2",
187
+ "properties": {
188
+ "line1": {
189
+ "ta7ed5Ref": "3.1.2.2"
190
+ },
191
+ "postcode": {
192
+ "ta7ed5Ref": "3.1.2.2"
193
+ }
194
+ }
195
+ },
196
+ "emailAddress": {
197
+ "ta7ed5Ref": "3.1.2.3"
198
+ }
199
+ }
200
+ }
201
+ }
202
+ },
203
+ "rightToManageCompany": {
204
+ "ta7ed5Ref": "3.1.3",
205
+ "properties": {
206
+ "contact": {
207
+ "ta7ed5Ref": "3.1.3",
208
+ "properties": {
209
+ "nameOrOrganisation": {
210
+ "ta7ed5Ref": "3.1.3.1"
211
+ },
212
+ "address": {
213
+ "ta7ed5Ref": "3.1.3.2",
214
+ "properties": {
215
+ "line1": {
216
+ "ta7ed5Ref": "3.1.3.2"
217
+ },
218
+ "postcode": {
219
+ "ta7ed5Ref": "3.1.3.2"
220
+ }
221
+ }
222
+ },
223
+ "emailAddress": {
224
+ "ta7ed5Ref": "3.1.3.3"
225
+ }
226
+ }
227
+ }
228
+ }
229
+ },
230
+ "freeholder": {
231
+ "ta7ed5Ref": "3.1.4",
232
+ "properties": {
233
+ "contact": {
234
+ "ta7ed5Ref": "3.1.4",
235
+ "properties": {
236
+ "nameOrOrganisation": {
237
+ "ta7ed5Ref": "3.1.4.1"
238
+ },
239
+ "address": {
240
+ "ta7ed5Ref": "3.1.4.2",
241
+ "properties": {
242
+ "line1": {
243
+ "ta7ed5Ref": "3.1.4.2"
244
+ },
245
+ "postcode": {
246
+ "ta7ed5Ref": "3.1.4.2"
247
+ }
248
+ }
249
+ },
250
+ "emailAddress": {
251
+ "ta7ed5Ref": "3.1.4.3"
252
+ }
253
+ }
254
+ }
255
+ }
256
+ },
257
+ "headLeaseHolder": {
258
+ "ta7ed5Ref": "3.1.5",
259
+ "properties": {
260
+ "contact": {
261
+ "ta7ed5Ref": "3.1.5",
262
+ "properties": {
263
+ "nameOrOrganisation": {
264
+ "ta7ed5Ref": "3.1.5.1"
265
+ },
266
+ "address": {
267
+ "ta7ed5Ref": "3.1.5.2",
268
+ "properties": {
269
+ "line1": {
270
+ "ta7ed5Ref": "3.1.5.2"
271
+ },
272
+ "postcode": {
273
+ "ta7ed5Ref": "3.1.5.2"
274
+ }
275
+ }
276
+ },
277
+ "emailAddress": {
278
+ "ta7ed5Ref": "3.1.5.3"
279
+ }
280
+ }
281
+ }
282
+ }
283
+ },
284
+ "managingAgent": {
285
+ "ta7ed5Ref": "4.1",
286
+ "required": [
287
+ "contact"
288
+ ],
289
+ "properties": {
290
+ "contact": {
291
+ "ta7ed5Ref": "4.1.2",
292
+ "required": [
293
+ "nameOrOrganisation",
294
+ "address",
295
+ "emailAddress"
296
+ ],
297
+ "properties": {
298
+ "nameOrOrganisation": {
299
+ "ta7ed5Ref": "4.1.2.1"
300
+ },
301
+ "address": {
302
+ "ta7ed5Ref": "4.1.2.2",
303
+ "properties": {
304
+ "line1": {
305
+ "ta7ed5Ref": "4.1.2.2"
306
+ },
307
+ "postcode": {
308
+ "ta7ed5Ref": "4.1.2.2"
309
+ }
310
+ }
311
+ },
312
+ "emailAddress": {
313
+ "ta7ed5Ref": "4.1.2.3"
314
+ }
315
+ }
316
+ }
317
+ }
318
+ }
319
+ }
320
+ },
321
+ "serviceContactAssignments": {
322
+ "ta7ed5Ref": "4",
323
+ "required": [
324
+ "collectsGroundRent",
325
+ "collectsbuildingInsurancePremiums"
326
+ ],
327
+ "properties": {
328
+ "collectsGroundRent": {
329
+ "ta7ed5Ref": "4.3",
330
+ "discriminator": {
331
+ "propertyName": "collector"
332
+ },
333
+ "oneOf": [
334
+ {
335
+ "properties": {
336
+ "collector": {
337
+ "enum": [
338
+ "Landlord",
339
+ "Management Company",
340
+ "Managing Agent",
341
+ "Not applicable"
342
+ ]
343
+ }
344
+ }
345
+ },
346
+ {
347
+ "properties": {
348
+ "collector": {
349
+ "enum": [
350
+ "Other"
351
+ ]
352
+ },
353
+ "otherCollector": {
354
+ "ta7ed5Ref": "4.3.3"
355
+ }
356
+ },
357
+ "required": [
358
+ "otherCollector"
359
+ ]
360
+ }
361
+ ],
362
+ "required": [
363
+ "collector"
364
+ ],
365
+ "properties": {
366
+ "collector": {
367
+ "ta7ed5Ref": "4.3.2",
368
+ "title": "Who collects the ground rent?",
369
+ "enum": [
370
+ "Landlord",
371
+ "Management Company",
372
+ "Other"
373
+ ]
374
+ }
375
+ }
376
+ },
377
+ "collectsbuildingInsurancePremiums": {
378
+ "ta7ed5Ref": "4.2",
379
+ "discriminator": {
380
+ "propertyName": "collector"
381
+ },
382
+ "oneOf": [
383
+ {
384
+ "properties": {
385
+ "collector": {
386
+ "enum": [
387
+ "Freeholder",
388
+ "Landlord",
389
+ "Management Company",
390
+ "Managing Agent",
391
+ "Head Leaseholder",
392
+ "Seller",
393
+ "Not applicable"
394
+ ]
395
+ }
396
+ }
397
+ },
398
+ {
399
+ "properties": {
400
+ "collector": {
401
+ "enum": [
402
+ "Other"
403
+ ]
404
+ },
405
+ "otherCollector": {
406
+ "ta7ed5Ref": "4.2.3"
407
+ }
408
+ },
409
+ "required": [
410
+ "otherCollector"
411
+ ]
412
+ }
413
+ ],
414
+ "required": [
415
+ "collector"
416
+ ],
417
+ "properties": {
418
+ "collector": {
419
+ "ta7ed5Ref": "4.2.2",
420
+ "enum": [
421
+ "Freeholder",
422
+ "Landlord",
423
+ "Management Company",
424
+ "Head Leaseholder",
425
+ "Seller",
426
+ "Other"
427
+ ]
428
+ }
429
+ }
430
+ }
431
+ }
432
+ }
433
+ }
434
+ },
435
+ "consents": {
436
+ "ta7ed5Ref": "8",
437
+ "required": [
438
+ "changesInTermOfLease",
439
+ "landlordConsents"
440
+ ],
441
+ "properties": {
442
+ "changesInTermOfLease": {
443
+ "ta7ed5Ref": "8.1",
444
+ "discriminator": {
445
+ "propertyName": "isSellerAwareOfChanges"
446
+ },
447
+ "oneOf": [
448
+ {
449
+ "properties": {
450
+ "isSellerAwareOfChanges": {
451
+ "enum": [
452
+ "No"
453
+ ]
454
+ }
455
+ }
456
+ },
457
+ {
458
+ "properties": {
459
+ "isSellerAwareOfChanges": {
460
+ "enum": [
461
+ "Yes"
462
+ ]
463
+ },
464
+ "details": {
465
+ "ta7ed5Ref": "8.1.2",
466
+ "title": "Please supply further details and any documents relating to the variation:"
467
+ },
468
+ "attachments": {
469
+ "ta7ed5Ref": "8.1.3"
470
+ }
471
+ },
472
+ "required": [
473
+ "details"
474
+ ]
475
+ }
476
+ ],
477
+ "required": [
478
+ "isSellerAwareOfChanges"
479
+ ],
480
+ "properties": {
481
+ "isSellerAwareOfChanges": {
482
+ "ta7ed5Ref": "8.1.1"
483
+ }
484
+ }
485
+ },
486
+ "landlordConsents": {
487
+ "ta7ed5Ref": "8.2",
488
+ "discriminator": {
489
+ "propertyName": "isSellerAwareOfLandlordConsents"
490
+ },
491
+ "oneOf": [
492
+ {
493
+ "properties": {
494
+ "isSellerAwareOfLandlordConsents": {
495
+ "enum": [
496
+ "No"
497
+ ]
498
+ }
499
+ }
500
+ },
501
+ {
502
+ "properties": {
503
+ "isSellerAwareOfLandlordConsents": {
504
+ "enum": [
505
+ "Yes"
506
+ ]
507
+ },
508
+ "details": {
509
+ "ta7ed5Ref": "8.2.2"
510
+ },
511
+ "attachments": {
512
+ "ta7ed5Ref": "8.2.3"
513
+ }
514
+ },
515
+ "required": [
516
+ "details",
517
+ "attachments"
518
+ ]
519
+ }
520
+ ],
521
+ "required": [
522
+ "isSellerAwareOfLandlordConsents"
523
+ ],
524
+ "properties": {
525
+ "isSellerAwareOfLandlordConsents": {
526
+ "ta7ed5Ref": "8.2.1"
527
+ }
528
+ }
529
+ }
530
+ }
531
+ },
532
+ "groundRent": {
533
+ "ta7ed5Ref": "2.2",
534
+ "discriminator": {
535
+ "propertyName": "isGroundRentPayable"
536
+ },
537
+ "oneOf": [
538
+ {
539
+ "properties": {
540
+ "isGroundRentPayable": {
541
+ "enum": [
542
+ "No"
543
+ ]
544
+ }
545
+ }
546
+ },
547
+ {
548
+ "properties": {
549
+ "isGroundRentPayable": {
550
+ "enum": [
551
+ "Yes"
552
+ ]
553
+ },
554
+ "mostRecentGroundRentDemandStatus": {
555
+ "ta7ed5Ref": "2.2a"
556
+ }
557
+ },
558
+ "required": [
559
+ "mostRecentGroundRentDemandStatus"
560
+ ]
561
+ }
562
+ ],
563
+ "required": [
564
+ "isGroundRentPayable"
565
+ ],
566
+ "properties": {
567
+ "isGroundRentPayable": {
568
+ "ta7ed5Ref": "2.2"
569
+ }
570
+ }
571
+ },
572
+ "ownershipAndManagement": {
573
+ "ta7ed5Ref": "4",
574
+ "discriminator": {
575
+ "propertyName": "hasTenantCompanyDissolved"
576
+ },
577
+ "oneOf": [
578
+ {
579
+ "properties": {
580
+ "hasTenantCompanyDissolved": {
581
+ "enum": [
582
+ "No",
583
+ "Not applicable"
584
+ ]
585
+ }
586
+ }
587
+ },
588
+ {
589
+ "properties": {
590
+ "hasTenantCompanyDissolved": {
591
+ "enum": [
592
+ "Yes"
593
+ ]
594
+ },
595
+ "hasTenantCompanyDissolvedDetails": {
596
+ "ta7ed5Ref": "4.5.2"
597
+ }
598
+ },
599
+ "required": [
600
+ "hasTenantCompanyDissolvedDetails"
601
+ ]
602
+ }
603
+ ],
604
+ "required": [
605
+ "isManagingAgentEmployed",
606
+ "sellerOwnership",
607
+ "hasTenantCompanyDissolved"
608
+ ],
609
+ "properties": {
610
+ "isManagingAgentEmployed": {
611
+ "ta7ed5Ref": "4.1.1",
612
+ "title": "Is a managing agent appointed to manage the building and collect service charges?",
613
+ "enum": [
614
+ "Yes",
615
+ "No",
616
+ "Not applicable"
617
+ ]
618
+ },
619
+ "sellerOwnership": {
620
+ "ta7ed5Ref": "4.4",
621
+ "discriminator": {
622
+ "propertyName": "yesNo"
623
+ },
624
+ "oneOf": [
625
+ {
626
+ "properties": {
627
+ "yesNo": {
628
+ "enum": [
629
+ "No",
630
+ "Not known"
631
+ ]
632
+ }
633
+ }
634
+ },
635
+ {
636
+ "properties": {
637
+ "yesNo": {
638
+ "enum": [
639
+ "Yes"
640
+ ]
641
+ },
642
+ "attachments": {
643
+ "ta7ed5Ref": "4.4.2"
644
+ }
645
+ },
646
+ "required": [
647
+ "attachments"
648
+ ]
649
+ }
650
+ ],
651
+ "required": [
652
+ "yesNo"
653
+ ],
654
+ "properties": {
655
+ "yesNo": {
656
+ "ta7ed5Ref": "4.4.1"
657
+ }
658
+ }
659
+ },
660
+ "hasTenantCompanyDissolved": {
661
+ "ta7ed5Ref": "4.5.1",
662
+ "title": "Are you aware of any company responsible for managing the building having been dissolved or struck off the register at Companies House?",
663
+ "enum": [
664
+ "Yes",
665
+ "No",
666
+ "Not applicable"
667
+ ]
668
+ }
669
+ }
670
+ },
671
+ "serviceCharge": {
672
+ "ta7ed5Ref": "2.2",
673
+ "discriminator": {
674
+ "propertyName": "sellerContributesToServiceCharge"
675
+ },
676
+ "oneOf": [
677
+ {
678
+ "properties": {
679
+ "sellerContributesToServiceCharge": {
680
+ "enum": [
681
+ "No"
682
+ ]
683
+ }
684
+ }
685
+ },
686
+ {
687
+ "properties": {
688
+ "sellerContributesToServiceCharge": {
689
+ "enum": [
690
+ "Yes"
691
+ ]
692
+ },
693
+ "mostRecentServiceChargeDemandStatus": {
694
+ "ta7ed5Ref": "2.2b"
695
+ },
696
+ "largeAdditionalExpense": {
697
+ "ta7ed5Ref": "5.4",
698
+ "discriminator": {
699
+ "propertyName": "yesNo"
700
+ },
701
+ "oneOf": [
702
+ {
703
+ "properties": {
704
+ "yesNo": {
705
+ "enum": [
706
+ "No"
707
+ ]
708
+ }
709
+ }
710
+ },
711
+ {
712
+ "properties": {
713
+ "yesNo": {
714
+ "enum": [
715
+ "Yes"
716
+ ]
717
+ },
718
+ "details": {
719
+ "ta7ed5Ref": "5.4.2"
720
+ }
721
+ },
722
+ "required": [
723
+ "details"
724
+ ]
725
+ }
726
+ ],
727
+ "required": [
728
+ "yesNo"
729
+ ],
730
+ "properties": {
731
+ "yesNo": {
732
+ "ta7ed5Ref": "5.4.1"
733
+ }
734
+ }
735
+ },
736
+ "problemInServiceChargeLevel": {
737
+ "ta7ed5Ref": "5.6",
738
+ "discriminator": {
739
+ "propertyName": "yesNo"
740
+ },
741
+ "oneOf": [
742
+ {
743
+ "properties": {
744
+ "yesNo": {
745
+ "enum": [
746
+ "No"
747
+ ]
748
+ }
749
+ }
750
+ },
751
+ {
752
+ "properties": {
753
+ "yesNo": {
754
+ "enum": [
755
+ "Yes"
756
+ ]
757
+ },
758
+ "details": {
759
+ "ta7ed5Ref": "5.6.2"
760
+ }
761
+ },
762
+ "required": [
763
+ "details"
764
+ ]
765
+ }
766
+ ],
767
+ "required": [
768
+ "yesNo"
769
+ ],
770
+ "properties": {
771
+ "yesNo": {
772
+ "ta7ed5Ref": "5.6.1"
773
+ }
774
+ }
775
+ },
776
+ "serviceChargeChallenged": {
777
+ "ta7ed5Ref": "5.5",
778
+ "discriminator": {
779
+ "propertyName": "yesNo"
780
+ },
781
+ "oneOf": [
782
+ {
783
+ "properties": {
784
+ "yesNo": {
785
+ "enum": [
786
+ "No"
787
+ ]
788
+ }
789
+ }
790
+ },
791
+ {
792
+ "properties": {
793
+ "yesNo": {
794
+ "enum": [
795
+ "Yes"
796
+ ]
797
+ },
798
+ "details": {
799
+ "ta7ed5Ref": "5.5.2"
800
+ }
801
+ },
802
+ "required": [
803
+ "details"
804
+ ]
805
+ }
806
+ ],
807
+ "required": [
808
+ "yesNo"
809
+ ],
810
+ "properties": {
811
+ "yesNo": {
812
+ "ta7ed5Ref": "5.5.1"
813
+ }
814
+ }
815
+ },
816
+ "dangerousCladdingOrDefects": {
817
+ "ta7ed5Ref": "11.1",
818
+ "discriminator": {
819
+ "propertyName": "yesNo"
820
+ },
821
+ "oneOf": [
822
+ {
823
+ "properties": {
824
+ "yesNo": {
825
+ "enum": [
826
+ "No"
827
+ ]
828
+ }
829
+ }
830
+ },
831
+ {
832
+ "properties": {
833
+ "yesNo": {
834
+ "enum": [
835
+ "Yes"
836
+ ]
837
+ },
838
+ "details": {
839
+ "ta7ed5Ref": "11.1.2"
840
+ }
841
+ },
842
+ "required": [
843
+ "details"
844
+ ]
845
+ }
846
+ ],
847
+ "required": [
848
+ "yesNo"
849
+ ],
850
+ "title": "Are you aware of the existence or suspected existence in the building of cladding or any defects that may create a building safety risk?",
851
+ "properties": {
852
+ "yesNo": {
853
+ "ta7ed5Ref": "11.1.1"
854
+ }
855
+ }
856
+ },
857
+ "lastDecoratedPeriod": {
858
+ "ta7ed5Ref": "5",
859
+ "properties": {
860
+ "externally": {
861
+ "ta7ed5Ref": "5.1",
862
+ "properties": {
863
+ "year": {
864
+ "ta7ed5Ref": "5.1.1"
865
+ }
866
+ }
867
+ },
868
+ "internally": {
869
+ "ta7ed5Ref": "5.2",
870
+ "properties": {
871
+ "year": {
872
+ "ta7ed5Ref": "5.2.1"
873
+ }
874
+ }
875
+ }
876
+ }
877
+ }
878
+ },
879
+ "required": [
880
+ "mostRecentServiceChargeDemandStatus",
881
+ "largeAdditionalExpense",
882
+ "problemInServiceChargeLevel",
883
+ "serviceChargeChallenged",
884
+ "dangerousCladdingOrDefects",
885
+ "lastDecoratedPeriod"
886
+ ]
887
+ }
888
+ ],
889
+ "required": [
890
+ "sellerContributesToServiceCharge"
891
+ ],
892
+ "properties": {
893
+ "sellerContributesToServiceCharge": {
894
+ "ta7ed5Ref": "5.3"
895
+ }
896
+ }
897
+ },
898
+ "buildingsInsurance": {
899
+ "ta7ed5Ref": "2.2",
900
+ "required": [
901
+ "mostRecentBuildingsInsuranceDemandStatus"
902
+ ],
903
+ "properties": {
904
+ "mostRecentBuildingsInsuranceDemandStatus": {
905
+ "ta7ed5Ref": "2.2c"
906
+ }
907
+ }
908
+ },
909
+ "disputes": {
910
+ "ta7ed5Ref": "10",
911
+ "required": [
912
+ "sellerReceivedComplaint",
913
+ "sellerSentComplaint"
914
+ ],
915
+ "properties": {
916
+ "sellerReceivedComplaint": {
917
+ "ta7ed5Ref": "10.1",
918
+ "discriminator": {
919
+ "propertyName": "yesNo"
920
+ },
921
+ "oneOf": [
922
+ {
923
+ "properties": {
924
+ "yesNo": {
925
+ "enum": [
926
+ "No",
927
+ "Not known"
928
+ ]
929
+ }
930
+ }
931
+ },
932
+ {
933
+ "properties": {
934
+ "yesNo": {
935
+ "enum": [
936
+ "Yes"
937
+ ]
938
+ },
939
+ "details": {
940
+ "ta7ed5Ref": "10.1.2"
941
+ }
942
+ },
943
+ "required": [
944
+ "details"
945
+ ]
946
+ }
947
+ ],
948
+ "required": [
949
+ "yesNo"
950
+ ],
951
+ "title": "Are you aware of any complaint received from the landlord, the management company or any neighbour about anything you have or have not done?",
952
+ "properties": {
953
+ "yesNo": {
954
+ "ta7ed5Ref": "10.1.1"
955
+ }
956
+ }
957
+ },
958
+ "sellerSentComplaint": {
959
+ "ta7ed5Ref": "10.2",
960
+ "discriminator": {
961
+ "propertyName": "yesNo"
962
+ },
963
+ "oneOf": [
964
+ {
965
+ "properties": {
966
+ "yesNo": {
967
+ "enum": [
968
+ "No",
969
+ "Not known"
970
+ ]
971
+ }
972
+ }
973
+ },
974
+ {
975
+ "properties": {
976
+ "yesNo": {
977
+ "enum": [
978
+ "Yes"
979
+ ]
980
+ },
981
+ "details": {
982
+ "ta7ed5Ref": "10.2.2"
983
+ }
984
+ },
985
+ "required": [
986
+ "details"
987
+ ]
988
+ }
989
+ ],
990
+ "required": [
991
+ "yesNo"
992
+ ],
993
+ "title": "Are you aware of any complaint made to or about the landlord, the management company, or any neighbour?",
994
+ "properties": {
995
+ "yesNo": {
996
+ "ta7ed5Ref": "10.2.1"
997
+ }
998
+ }
999
+ }
1000
+ }
1001
+ },
1002
+ "buildingSafetyAct": {
1003
+ "ta7ed5Ref": "11",
1004
+ "required": [
1005
+ "isLeaseQualifying",
1006
+ "landlordNotifiedOfSale",
1007
+ "deedOfCertificateServed",
1008
+ "landlordsCertificateServed"
1009
+ ],
1010
+ "properties": {
1011
+ "isLeaseQualifying": {
1012
+ "ta7ed5Ref": "11.3",
1013
+ "title": "Is the property within a relevant building (11 metres or more in height or at least 5 storeys and contains at least 2 dwellings) and is not leaseholder-owned?",
1014
+ "enum": [
1015
+ "Yes",
1016
+ "No",
1017
+ "Not known"
1018
+ ]
1019
+ },
1020
+ "deedOfCertificateServed": {
1021
+ "ta7ed5Ref": "11.4",
1022
+ "discriminator": {
1023
+ "propertyName": "yesNoNotApplicable"
1024
+ },
1025
+ "oneOf": [
1026
+ {
1027
+ "properties": {
1028
+ "yesNoNotApplicable": {
1029
+ "enum": [
1030
+ "Not applicable",
1031
+ "No"
1032
+ ]
1033
+ }
1034
+ }
1035
+ },
1036
+ {
1037
+ "properties": {
1038
+ "yesNoNotApplicable": {
1039
+ "enum": [
1040
+ "Yes"
1041
+ ]
1042
+ },
1043
+ "attachments": {
1044
+ "ta7ed5Ref": "11.4.2",
1045
+ "title": "Please supply a copy of the leaseholder deed of certificate and the accompanying evidence."
1046
+ }
1047
+ },
1048
+ "required": [
1049
+ "attachments"
1050
+ ]
1051
+ }
1052
+ ],
1053
+ "required": [
1054
+ "yesNoNotApplicable"
1055
+ ],
1056
+ "title": "Is there a leaseholder deed of certificate for the property?",
1057
+ "properties": {
1058
+ "yesNoNotApplicable": {
1059
+ "ta7ed5Ref": "11.4.1"
1060
+ }
1061
+ }
1062
+ },
1063
+ "landlordNotifiedOfSale": {
1064
+ "ta7ed5Ref": "11.5",
1065
+ "title": "Has the landlord been notified of your intention to sell the property?",
1066
+ "enum": [
1067
+ "Yes",
1068
+ "No",
1069
+ "Not known"
1070
+ ]
1071
+ },
1072
+ "landlordsCertificateServed": {
1073
+ "ta7ed5Ref": "11.6",
1074
+ "discriminator": {
1075
+ "propertyName": "yesNoNotApplicable"
1076
+ },
1077
+ "oneOf": [
1078
+ {
1079
+ "properties": {
1080
+ "yesNoNotApplicable": {
1081
+ "enum": [
1082
+ "Not applicable",
1083
+ "No"
1084
+ ]
1085
+ }
1086
+ }
1087
+ },
1088
+ {
1089
+ "properties": {
1090
+ "yesNoNotApplicable": {
1091
+ "enum": [
1092
+ "Yes"
1093
+ ]
1094
+ },
1095
+ "attachments": {
1096
+ "ta7ed5Ref": "11.6.2",
1097
+ "title": "Please supply a copy of the landlord’s certificate and the accompanying evidence."
1098
+ }
1099
+ },
1100
+ "required": [
1101
+ "attachments"
1102
+ ]
1103
+ }
1104
+ ],
1105
+ "required": [
1106
+ "yesNoNotApplicable"
1107
+ ],
1108
+ "title": "Have you received a landlord’s certificate and the accompanying evidence?",
1109
+ "properties": {
1110
+ "yesNoNotApplicable": {
1111
+ "ta7ed5Ref": "11.6.1",
1112
+ "enum": [
1113
+ "Yes",
1114
+ "No"
1115
+ ]
1116
+ }
1117
+ }
1118
+ }
1119
+ }
1120
+ },
1121
+ "alterations": {
1122
+ "ta7ed5Ref": "9",
1123
+ "required": [
1124
+ "sellerAwareOfAlterations"
1125
+ ],
1126
+ "properties": {
1127
+ "sellerAwareOfAlterations": {
1128
+ "ta7ed5Ref": "9.1",
1129
+ "discriminator": {
1130
+ "propertyName": "yesNo"
1131
+ },
1132
+ "oneOf": [
1133
+ {
1134
+ "properties": {
1135
+ "yesNo": {
1136
+ "enum": [
1137
+ "No"
1138
+ ]
1139
+ }
1140
+ }
1141
+ },
1142
+ {
1143
+ "properties": {
1144
+ "yesNo": {
1145
+ "enum": [
1146
+ "Yes"
1147
+ ]
1148
+ },
1149
+ "details": {
1150
+ "ta7ed5Ref": "9.2"
1151
+ },
1152
+ "landlordConsentObtained": {
1153
+ "ta7ed5Ref": "9.3",
1154
+ "discriminator": {
1155
+ "propertyName": "yesNo"
1156
+ },
1157
+ "oneOf": [
1158
+ {
1159
+ "properties": {
1160
+ "yesNo": {
1161
+ "enum": [
1162
+ "No",
1163
+ "Not known",
1164
+ "Not required"
1165
+ ]
1166
+ }
1167
+ }
1168
+ },
1169
+ {
1170
+ "properties": {
1171
+ "yesNo": {
1172
+ "enum": [
1173
+ "Yes"
1174
+ ]
1175
+ },
1176
+ "attachments": {
1177
+ "ta7ed5Ref": "9.3.2"
1178
+ }
1179
+ },
1180
+ "required": [
1181
+ "attachments"
1182
+ ]
1183
+ }
1184
+ ],
1185
+ "required": [
1186
+ "yesNo"
1187
+ ],
1188
+ "properties": {
1189
+ "yesNo": {
1190
+ "ta7ed5Ref": "9.3.1"
1191
+ }
1192
+ }
1193
+ }
1194
+ },
1195
+ "required": [
1196
+ "details",
1197
+ "landlordConsentObtained"
1198
+ ]
1199
+ }
1200
+ ],
1201
+ "required": [
1202
+ "yesNo"
1203
+ ],
1204
+ "properties": {
1205
+ "yesNo": {
1206
+ "ta7ed5Ref": "9.1.1"
1207
+ }
1208
+ }
1209
+ }
1210
+ }
1211
+ },
1212
+ "enfranchisement": {
1213
+ "ta7ed5Ref": "7",
1214
+ "required": [
1215
+ "sellerServedNoticeOnLandlord",
1216
+ "sellerAwareOfNoticeOfCollectivePurchase",
1217
+ "sellerAwareOfResponse"
1218
+ ],
1219
+ "properties": {
1220
+ "sellerServedNoticeOnLandlord": {
1221
+ "ta7ed5Ref": "7.1",
1222
+ "discriminator": {
1223
+ "propertyName": "yesNo"
1224
+ },
1225
+ "oneOf": [
1226
+ {
1227
+ "properties": {
1228
+ "yesNo": {
1229
+ "enum": [
1230
+ "No",
1231
+ "Not known",
1232
+ "Not required"
1233
+ ]
1234
+ }
1235
+ }
1236
+ },
1237
+ {
1238
+ "properties": {
1239
+ "yesNo": {
1240
+ "enum": [
1241
+ "Yes"
1242
+ ]
1243
+ },
1244
+ "attachments": {
1245
+ "ta7ed5Ref": "7.1.2"
1246
+ }
1247
+ },
1248
+ "required": [
1249
+ "attachments"
1250
+ ]
1251
+ }
1252
+ ],
1253
+ "required": [
1254
+ "yesNo"
1255
+ ],
1256
+ "title": "Have you served on the landlord a notice stating your wish to buy the freehold or be granted an extended lease?",
1257
+ "properties": {
1258
+ "yesNo": {
1259
+ "ta7ed5Ref": "7.1.1"
1260
+ }
1261
+ }
1262
+ },
1263
+ "sellerAwareOfNoticeOfCollectivePurchase": {
1264
+ "ta7ed5Ref": "7.2",
1265
+ "discriminator": {
1266
+ "propertyName": "yesNo"
1267
+ },
1268
+ "oneOf": [
1269
+ {
1270
+ "properties": {
1271
+ "yesNo": {
1272
+ "enum": [
1273
+ "No",
1274
+ "Not known",
1275
+ "Not required"
1276
+ ]
1277
+ }
1278
+ }
1279
+ },
1280
+ {
1281
+ "properties": {
1282
+ "yesNo": {
1283
+ "enum": [
1284
+ "Yes"
1285
+ ]
1286
+ },
1287
+ "attachments": {
1288
+ "ta7ed5Ref": "7.2.2"
1289
+ }
1290
+ },
1291
+ "required": [
1292
+ "attachments"
1293
+ ]
1294
+ }
1295
+ ],
1296
+ "required": [
1297
+ "yesNo"
1298
+ ],
1299
+ "title": "Are you aware of the service of any notice relating to the possible collective purchase of the freehold of the building or part of it by a group of tenants?",
1300
+ "properties": {
1301
+ "yesNo": {
1302
+ "ta7ed5Ref": "7.2.1"
1303
+ }
1304
+ }
1305
+ },
1306
+ "sellerAwareOfResponse": {
1307
+ "ta7ed5Ref": "7.3",
1308
+ "discriminator": {
1309
+ "propertyName": "yesNo"
1310
+ },
1311
+ "oneOf": [
1312
+ {
1313
+ "properties": {
1314
+ "yesNo": {
1315
+ "enum": [
1316
+ "No",
1317
+ "Not known",
1318
+ "Not required"
1319
+ ]
1320
+ }
1321
+ }
1322
+ },
1323
+ {
1324
+ "properties": {
1325
+ "yesNo": {
1326
+ "enum": [
1327
+ "Yes"
1328
+ ]
1329
+ },
1330
+ "attachments": {
1331
+ "ta7ed5Ref": "7.3.2"
1332
+ }
1333
+ },
1334
+ "required": [
1335
+ "attachments"
1336
+ ]
1337
+ }
1338
+ ],
1339
+ "required": [
1340
+ "yesNo"
1341
+ ],
1342
+ "properties": {
1343
+ "yesNo": {
1344
+ "ta7ed5Ref": "7.3.1"
1345
+ }
1346
+ }
1347
+ }
1348
+ }
1349
+ },
1350
+ "requiredDocuments": {
1351
+ "ta7ed5Ref": "6",
1352
+ "required": [
1353
+ "noticeOfSale",
1354
+ "noticeOfBuildingCondition"
1355
+ ],
1356
+ "properties": {
1357
+ "noticeOfSale": {
1358
+ "ta7ed5Ref": "6.1",
1359
+ "discriminator": {
1360
+ "propertyName": "yesNo"
1361
+ },
1362
+ "oneOf": [
1363
+ {
1364
+ "properties": {
1365
+ "yesNo": {
1366
+ "enum": [
1367
+ "No"
1368
+ ]
1369
+ }
1370
+ }
1371
+ },
1372
+ {
1373
+ "properties": {
1374
+ "yesNo": {
1375
+ "enum": [
1376
+ "Yes"
1377
+ ]
1378
+ },
1379
+ "attachments": {
1380
+ "ta7ed5Ref": "6.1.2"
1381
+ }
1382
+ },
1383
+ "required": [
1384
+ "attachments"
1385
+ ]
1386
+ }
1387
+ ],
1388
+ "required": [
1389
+ "yesNo"
1390
+ ],
1391
+ "title": "Have you received a notice that the landlord wants to sell the building?",
1392
+ "properties": {
1393
+ "yesNo": {
1394
+ "ta7ed5Ref": "6.1.1"
1395
+ }
1396
+ }
1397
+ },
1398
+ "noticeOfBuildingCondition": {
1399
+ "ta7ed5Ref": "6.2",
1400
+ "discriminator": {
1401
+ "propertyName": "yesNo"
1402
+ },
1403
+ "oneOf": [
1404
+ {
1405
+ "properties": {
1406
+ "yesNo": {
1407
+ "enum": [
1408
+ "No"
1409
+ ]
1410
+ }
1411
+ }
1412
+ },
1413
+ {
1414
+ "properties": {
1415
+ "yesNo": {
1416
+ "enum": [
1417
+ "Yes"
1418
+ ]
1419
+ },
1420
+ "attachments": {
1421
+ "ta7ed5Ref": "6.2.2"
1422
+ }
1423
+ },
1424
+ "required": [
1425
+ "attachments"
1426
+ ]
1427
+ }
1428
+ ],
1429
+ "required": [
1430
+ "yesNo"
1431
+ ],
1432
+ "title": "Have you received any other notice about the building, its use, its condition or its repair and maintenance?",
1433
+ "properties": {
1434
+ "yesNo": {
1435
+ "ta7ed5Ref": "6.2.1"
1436
+ }
1437
+ }
1438
+ }
1439
+ }
1440
+ },
1441
+ "additionalInformation": {
1442
+ "ta7ed5Ref": "12",
1443
+ "required": [
1444
+ "attachments"
1445
+ ],
1446
+ "properties": {
1447
+ "details": {
1448
+ "ta7ed5Ref": "12.1"
1449
+ },
1450
+ "attachments": {
1451
+ "ta7ed5Ref": "12.2"
1452
+ }
1453
+ }
1454
+ }
1455
+ }
1456
+ }
1457
+ },
1458
+ "required": [
1459
+ "leaseholdInformation"
1460
+ ]
1461
+ },
1462
+ {
1463
+ "properties": {
1464
+ "ownershipType": {
1465
+ "enum": [
1466
+ "Other"
1467
+ ]
1468
+ }
1469
+ }
1470
+ }
1471
+ ],
1472
+ "ta7ed5Ref": "2",
1473
+ "required": [
1474
+ "ownershipType"
1475
+ ]
1476
+ }
1477
+ }
1478
+ }
1479
+ },
1480
+ "typeOfConstruction": {
1481
+ "ta7ed5Ref": "11",
1482
+ "required": [
1483
+ "buildingSafety"
1484
+ ],
1485
+ "properties": {
1486
+ "buildingSafety": {
1487
+ "ta7ed5Ref": "11.2",
1488
+ "discriminator": {
1489
+ "propertyName": "yesNo"
1490
+ },
1491
+ "oneOf": [
1492
+ {
1493
+ "properties": {
1494
+ "yesNo": {
1495
+ "enum": [
1496
+ "No",
1497
+ "Not known"
1498
+ ]
1499
+ }
1500
+ }
1501
+ },
1502
+ {
1503
+ "properties": {
1504
+ "yesNo": {
1505
+ "enum": [
1506
+ "Yes"
1507
+ ]
1508
+ },
1509
+ "attachments": {
1510
+ "ta7ed5Ref": "11.2.2",
1511
+ "title": "Please provide details of the remediation works proposed and evidence of any carried out."
1512
+ }
1513
+ },
1514
+ "required": [
1515
+ "attachments"
1516
+ ]
1517
+ }
1518
+ ],
1519
+ "required": [
1520
+ "yesNo"
1521
+ ],
1522
+ "title": "Have any remediation works on the building been proposed or carried out?",
1523
+ "properties": {
1524
+ "yesNo": {
1525
+ "ta7ed5Ref": "11.2.1",
1526
+ "enum": [
1527
+ "Yes",
1528
+ "No",
1529
+ "Not known"
1530
+ ]
1531
+ }
1532
+ }
1533
+ }
1534
+ }
1535
+ }
1536
+ }
1537
+ }
1538
+ }
1539
+ }