@pdtf/schemas 3.6.0-dev.1 → 3.6.0-dev.3

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 (132) hide show
  1. package/package.json +1 -1
  2. package/pensive-tesla-d0d355/CLAUDE.md +101 -0
  3. package/pensive-tesla-d0d355/LICENSE +21 -0
  4. package/pensive-tesla-d0d355/README.md +435 -0
  5. package/pensive-tesla-d0d355/docs/branch-release-workflow.md +138 -0
  6. package/pensive-tesla-d0d355/docs/sef25-extensions-ui-spec.md +355 -0
  7. package/pensive-tesla-d0d355/index.js +654 -0
  8. package/pensive-tesla-d0d355/package-lock.json +7297 -0
  9. package/pensive-tesla-d0d355/package.json +44 -0
  10. package/pensive-tesla-d0d355/src/examples/v1/exampleAddParticipantVouch.json +32 -0
  11. package/pensive-tesla-d0d355/src/examples/v1/exampleDocumentedVouch.json +40 -0
  12. package/pensive-tesla-d0d355/src/examples/v1/exampleElectronicRecord.json +30 -0
  13. package/pensive-tesla-d0d355/src/examples/v1/exampleTransaction.json +878 -0
  14. package/pensive-tesla-d0d355/src/examples/v1/exampleVouch.json +25 -0
  15. package/pensive-tesla-d0d355/src/examples/v2/exampleTransaction.json +901 -0
  16. package/pensive-tesla-d0d355/src/examples/v3/exampleAddParticipantVouch.json +38 -0
  17. package/pensive-tesla-d0d355/src/examples/v3/exampleCustomOverlay.json +55 -0
  18. package/pensive-tesla-d0d355/src/examples/v3/exampleCustomOverlay2.json +93 -0
  19. package/pensive-tesla-d0d355/src/examples/v3/exampleDocumentedVouch.json +47 -0
  20. package/pensive-tesla-d0d355/src/examples/v3/exampleElectronicRecord.json +36 -0
  21. package/pensive-tesla-d0d355/src/examples/v3/exampleTransaction.json +1038 -0
  22. package/pensive-tesla-d0d355/src/examples/v3/exampleVouch.json +32 -0
  23. package/pensive-tesla-d0d355/src/mappings/SendPropertyDetailsRequestSchema.json +1588 -0
  24. package/pensive-tesla-d0d355/src/mappings/adf.js +198 -0
  25. package/pensive-tesla-d0d355/src/schemas/v1/GeoJSON.json +1279 -0
  26. package/pensive-tesla-d0d355/src/schemas/v1/baspiNotes.html +102 -0
  27. package/pensive-tesla-d0d355/src/schemas/v1/energy-performance-certificate.json +124 -0
  28. package/pensive-tesla-d0d355/src/schemas/v1/freehold-information.json +2051 -0
  29. package/pensive-tesla-d0d355/src/schemas/v1/leasehold-information.json +2064 -0
  30. package/pensive-tesla-d0d355/src/schemas/v1/legal-information.json +1045 -0
  31. package/pensive-tesla-d0d355/src/schemas/v1/material-facts.json +2109 -0
  32. package/pensive-tesla-d0d355/src/schemas/v1/pdtf-transaction-search-results.json +40 -0
  33. package/pensive-tesla-d0d355/src/schemas/v1/pdtf-transaction.json +191 -0
  34. package/pensive-tesla-d0d355/src/schemas/v1/searches/drainage-and-water.json +261 -0
  35. package/pensive-tesla-d0d355/src/schemas/v1/searches/local-land-charges.json +69 -0
  36. package/pensive-tesla-d0d355/src/schemas/v1/searches/local-searches-required.json +857 -0
  37. package/pensive-tesla-d0d355/src/schemas/v1/searches.json +237 -0
  38. package/pensive-tesla-d0d355/src/schemas/v1/title-deed.json +841 -0
  39. package/pensive-tesla-d0d355/src/schemas/v2/baspiNotes.html +102 -0
  40. package/pensive-tesla-d0d355/src/schemas/v2/combined.json +37731 -0
  41. package/pensive-tesla-d0d355/src/schemas/v2/overlays/baspi.json +8132 -0
  42. package/pensive-tesla-d0d355/src/schemas/v2/overlays/con29DW.json +705 -0
  43. package/pensive-tesla-d0d355/src/schemas/v2/overlays/con29R.json +2956 -0
  44. package/pensive-tesla-d0d355/src/schemas/v2/overlays/fme1.json +1259 -0
  45. package/pensive-tesla-d0d355/src/schemas/v2/overlays/llc1.json +25 -0
  46. package/pensive-tesla-d0d355/src/schemas/v2/overlays/lpe1.json +2171 -0
  47. package/pensive-tesla-d0d355/src/schemas/v2/overlays/nts.json +326 -0
  48. package/pensive-tesla-d0d355/src/schemas/v2/overlays/oc1.json +2799 -0
  49. package/pensive-tesla-d0d355/src/schemas/v2/overlays/piq.json +3419 -0
  50. package/pensive-tesla-d0d355/src/schemas/v2/overlays/rds.json +3736 -0
  51. package/pensive-tesla-d0d355/src/schemas/v2/overlays/ta10.json +5306 -0
  52. package/pensive-tesla-d0d355/src/schemas/v2/overlays/ta6.json +4533 -0
  53. package/pensive-tesla-d0d355/src/schemas/v2/overlays/ta7.json +1045 -0
  54. package/pensive-tesla-d0d355/src/schemas/v2/pdtf-transaction.json +34351 -0
  55. package/pensive-tesla-d0d355/src/schemas/v2/skeleton.json +3973 -0
  56. package/pensive-tesla-d0d355/src/schemas/v3/combined.json +48469 -0
  57. package/pensive-tesla-d0d355/src/schemas/v3/compactSkeleton.txt +4519 -0
  58. package/pensive-tesla-d0d355/src/schemas/v3/overlays/README.md +299 -0
  59. package/pensive-tesla-d0d355/src/schemas/v3/overlays/baspi4.json +8025 -0
  60. package/pensive-tesla-d0d355/src/schemas/v3/overlays/baspi5.json +8175 -0
  61. package/pensive-tesla-d0d355/src/schemas/v3/overlays/con29DW.json +716 -0
  62. package/pensive-tesla-d0d355/src/schemas/v3/overlays/con29R.json +2981 -0
  63. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ac.json +333 -0
  64. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/as.json +74 -0
  65. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/dk.json +32 -0
  66. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/dr.json +73 -0
  67. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/er.json +85 -0
  68. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/fd.json +75 -0
  69. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/hi.json +51 -0
  70. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/hs.json +73 -0
  71. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ic.json +59 -0
  72. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/jk.json +96 -0
  73. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/la.json +85 -0
  74. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/lc.json +75 -0
  75. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ma.json +90 -0
  76. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/mc.json +38 -0
  77. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/mi.json +69 -0
  78. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/nd.json +43 -0
  79. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/oa.json +24 -0
  80. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/oc.json +57 -0
  81. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/pc.json +37 -0
  82. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ph.json +194 -0
  83. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/rw.json +68 -0
  84. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sb.json +73 -0
  85. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sc.json +129 -0
  86. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sd.json +63 -0
  87. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sf.json +74 -0
  88. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sl.json +68 -0
  89. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ta.json +252 -0
  90. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/tf.json +103 -0
  91. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/tr.json +73 -0
  92. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/wg.json +350 -0
  93. package/pensive-tesla-d0d355/src/schemas/v3/overlays/fme1.json +1266 -0
  94. package/pensive-tesla-d0d355/src/schemas/v3/overlays/llc1.json +25 -0
  95. package/pensive-tesla-d0d355/src/schemas/v3/overlays/lpe1.json +2199 -0
  96. package/pensive-tesla-d0d355/src/schemas/v3/overlays/nts.json +2157 -0
  97. package/pensive-tesla-d0d355/src/schemas/v3/overlays/nts2.json +2742 -0
  98. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ntsl.json +1813 -0
  99. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ntsl2.json +2217 -0
  100. package/pensive-tesla-d0d355/src/schemas/v3/overlays/oc1.json +2817 -0
  101. package/pensive-tesla-d0d355/src/schemas/v3/overlays/piq.json +3322 -0
  102. package/pensive-tesla-d0d355/src/schemas/v3/overlays/rds.json +3665 -0
  103. package/pensive-tesla-d0d355/src/schemas/v3/overlays/sef25.json +1639 -0
  104. package/pensive-tesla-d0d355/src/schemas/v3/overlays/sr24.json +38 -0
  105. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta10.json +4654 -0
  106. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta6.json +4568 -0
  107. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta6ed6.json +6534 -0
  108. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta7.json +1537 -0
  109. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta7ed5.json +1551 -0
  110. package/pensive-tesla-d0d355/src/schemas/v3/pdtf-transaction.json +41573 -0
  111. package/pensive-tesla-d0d355/src/schemas/v3/skeleton.json +5767 -0
  112. package/pensive-tesla-d0d355/src/schemas/verifiedClaims/README.md +21 -0
  113. package/pensive-tesla-d0d355/src/schemas/verifiedClaims/pdtf-verified-claims.json +447 -0
  114. package/pensive-tesla-d0d355/src/utils/compactSkeleton.js +84 -0
  115. package/pensive-tesla-d0d355/src/utils/countTokens.js +67 -0
  116. package/pensive-tesla-d0d355/src/utils/extractExtensionOverlays.js +624 -0
  117. package/pensive-tesla-d0d355/src/utils/extractOverlay.js +381 -0
  118. package/pensive-tesla-d0d355/src/utils/extractProperties.js +44 -0
  119. package/pensive-tesla-d0d355/src/utils/listPathTitles.js +36 -0
  120. package/pensive-tesla-d0d355/src/utils/minimalSkeleton.js +85 -0
  121. package/pensive-tesla-d0d355/src/utils/pathList.csv +903 -0
  122. package/pensive-tesla-d0d355/src/utils/pathSkeleton.js +181 -0
  123. package/src/schemas/v3/combined.json +323 -5
  124. package/src/schemas/v3/compactSkeleton.txt +63 -0
  125. package/src/schemas/v3/overlays/baspi4.json +2 -1
  126. package/src/schemas/v3/overlays/baspi5.json +2 -1
  127. package/src/schemas/v3/overlays/extensions/ta.json +0 -48
  128. package/src/schemas/v3/overlays/piq.json +2 -1
  129. package/src/schemas/v3/overlays/ta6ed6.json +2 -1
  130. package/src/schemas/v3/pdtf-transaction.json +336 -2
  131. package/src/schemas/v3/skeleton.json +68 -3
  132. package/docs/backend-lms-profile-filtering-spec.md +0 -180
@@ -109,6 +109,11 @@
109
109
  "easting": "number",
110
110
  "northing": "number"
111
111
  },
112
+ "ruralUrbanClassification": "string",
113
+ "ruralUrbanCode": "string",
114
+ "region": "string",
115
+ "parish": "string",
116
+ "outputArea": "string",
112
117
  "googleStreetViewPOV": {
113
118
  "heading": "number",
114
119
  "pitch": "number",
@@ -157,6 +162,7 @@
157
162
  "hasLift": "string",
158
163
  "overCommercialPremises": {
159
164
  "isLocatedOverCommercialPremises": "variant",
165
+ "detailsAnalysis": {},
160
166
  "details": "string"
161
167
  }
162
168
  },
@@ -975,6 +981,7 @@
975
981
  },
976
982
  "excessPaymentAnticipated": {
977
983
  "yesNo": "variant",
984
+ "detailsAnalysis": {},
978
985
  "details": "string"
979
986
  },
980
987
  "lastDemandPeriod": {
@@ -987,6 +994,7 @@
987
994
  },
988
995
  "reserveFund": {
989
996
  "yesNo": "variant",
997
+ "detailsAnalysis": {},
990
998
  "details": "string",
991
999
  "contributionIncludedInServiceCharge": "string",
992
1000
  "sufficentToCoverSection20Expenditure": {
@@ -1008,10 +1016,12 @@
1008
1016
  },
1009
1017
  "section20WorksProposed": {
1010
1018
  "yesNo": "variant",
1019
+ "detailsAnalysis": {},
1011
1020
  "details": "string"
1012
1021
  },
1013
1022
  "increaseInServiceChargeAnticipated": {
1014
1023
  "yesNo": "variant",
1024
+ "detailsAnalysis": {},
1015
1025
  "details": "string"
1016
1026
  },
1017
1027
  "outstandingServiceChargeConsultation": {
@@ -1095,10 +1105,12 @@
1095
1105
  },
1096
1106
  "unresolvedDisputes": {
1097
1107
  "yesNo": "variant",
1108
+ "detailsAnalysis": {},
1098
1109
  "details": "string"
1099
1110
  },
1100
1111
  "breachOfTermsOfLease": {
1101
1112
  "yesNo": "variant",
1113
+ "detailsAnalysis": {},
1102
1114
  "details": "string"
1103
1115
  }
1104
1116
  },
@@ -1118,6 +1130,7 @@
1118
1130
  "alterations": {
1119
1131
  "sellerAwareOfAlterations": {
1120
1132
  "yesNo": "variant",
1133
+ "detailsAnalysis": {},
1121
1134
  "details": "string",
1122
1135
  "landlordConsentObtained": {
1123
1136
  "yesNo": "variant",
@@ -1252,6 +1265,7 @@
1252
1265
  "listingAndConservation": {
1253
1266
  "isListed": {
1254
1267
  "yesNo": "variant",
1268
+ "detailsAnalysis": {},
1255
1269
  "details": "string",
1256
1270
  "attachments": "string"
1257
1271
  },
@@ -1264,6 +1278,7 @@
1264
1278
  "yesNo": "variant",
1265
1279
  "workCarriedOut": {
1266
1280
  "yesNo": "variant",
1281
+ "detailsAnalysis": {},
1267
1282
  "details": "string",
1268
1283
  "consentsObtained": "string",
1269
1284
  "attachments": "string"
@@ -1273,11 +1288,13 @@
1273
1288
  "typeOfConstruction": {
1274
1289
  "isStandardForm": {
1275
1290
  "yesNo": "variant",
1291
+ "detailsAnalysis": {},
1276
1292
  "constructionType": "string",
1277
1293
  "details": "string"
1278
1294
  },
1279
1295
  "buildingSafety": {
1280
1296
  "yesNo": "variant",
1297
+ "detailsAnalysis": {},
1281
1298
  "details": "string",
1282
1299
  "workAlreadyDone": "string",
1283
1300
  "workToBeDone": "string",
@@ -1287,12 +1304,14 @@
1287
1304
  },
1288
1305
  "loft": {
1289
1306
  "loftAccess": "variant",
1307
+ "detailsAnalysis": {},
1290
1308
  "details": "string",
1291
1309
  "loftBoarded": "string",
1292
1310
  "loftInsulated": "string"
1293
1311
  },
1294
1312
  "sprayFoamInsulation": {
1295
1313
  "hasSprayFoamInstalled": "variant",
1314
+ "detailsAnalysis": {},
1296
1315
  "details": "string",
1297
1316
  "attachments": "string"
1298
1317
  },
@@ -1428,24 +1447,29 @@
1428
1447
  "disputesAndComplaints": {
1429
1448
  "hasDisputesAndComplaints": {
1430
1449
  "yesNo": "variant",
1450
+ "detailsAnalysis": {},
1431
1451
  "details": "string"
1432
1452
  },
1433
1453
  "leadingToDisputesAndComplaints": {
1434
1454
  "yesNo": "variant",
1455
+ "detailsAnalysis": {},
1435
1456
  "details": "string"
1436
1457
  }
1437
1458
  },
1438
1459
  "alterationsAndChanges": {
1439
1460
  "hasStructuralAlterations": {
1440
1461
  "yesNo": "variant",
1462
+ "detailsAnalysis": {},
1441
1463
  "details": "string",
1442
1464
  "buildingRegApproval": {
1443
1465
  "yesNo": "variant",
1466
+ "detailsAnalysis": {},
1444
1467
  "attachments": "string",
1445
1468
  "details": "string"
1446
1469
  },
1447
1470
  "planningPermission": {
1448
1471
  "yesNo": "variant",
1472
+ "detailsAnalysis": {},
1449
1473
  "attachments": "string",
1450
1474
  "details": "string"
1451
1475
  },
@@ -1462,10 +1486,12 @@
1462
1486
  },
1463
1487
  "changeOfUse": {
1464
1488
  "yesNo": "variant",
1489
+ "detailsAnalysis": {},
1465
1490
  "details": "string",
1466
1491
  "yearCompleted": "integer",
1467
1492
  "buildingRegApproval": {
1468
1493
  "yesNo": "variant",
1494
+ "detailsAnalysis": {},
1469
1495
  "attachments": "string",
1470
1496
  "details": "string"
1471
1497
  },
@@ -1492,10 +1518,12 @@
1492
1518
  },
1493
1519
  "windowReplacementsSince2002": {
1494
1520
  "yesNo": "variant",
1521
+ "detailsAnalysis": {},
1495
1522
  "details": "string",
1496
1523
  "yearCompleted": "integer",
1497
1524
  "buildingRegApproval": {
1498
1525
  "yesNo": "variant",
1526
+ "detailsAnalysis": {},
1499
1527
  "attachments": "string",
1500
1528
  "details": "string"
1501
1529
  },
@@ -1541,10 +1569,12 @@
1541
1569
  },
1542
1570
  "hasAddedConservatory": {
1543
1571
  "yesNo": "variant",
1572
+ "detailsAnalysis": {},
1544
1573
  "details": "string",
1545
1574
  "yearCompleted": "integer",
1546
1575
  "buildingRegApproval": {
1547
1576
  "yesNo": "variant",
1577
+ "detailsAnalysis": {},
1548
1578
  "attachments": "string",
1549
1579
  "details": "string"
1550
1580
  },
@@ -1685,17 +1715,20 @@
1685
1715
  },
1686
1716
  "worksUnfinished": {
1687
1717
  "yesNo": "variant",
1718
+ "detailsAnalysis": {},
1688
1719
  "details": "string",
1689
1720
  "attachments": "string"
1690
1721
  },
1691
1722
  "planningPermissionBreaches": {
1692
1723
  "yesNo": "variant",
1724
+ "detailsAnalysis": {},
1693
1725
  "details": "string",
1694
1726
  "willingToInsure": "string",
1695
1727
  "attachments": "string"
1696
1728
  },
1697
1729
  "unresolvedPlanningIssues": {
1698
1730
  "yesNo": "variant",
1731
+ "detailsAnalysis": {},
1699
1732
  "details": "string",
1700
1733
  "willingToInsure": "string",
1701
1734
  "attachments": "string"
@@ -1729,6 +1762,7 @@
1729
1762
  },
1730
1763
  "partyWallAct": {
1731
1764
  "yesNo": "variant",
1765
+ "detailsAnalysis": {},
1732
1766
  "details": "string",
1733
1767
  "attachments": "string"
1734
1768
  },
@@ -1760,6 +1794,7 @@
1760
1794
  },
1761
1795
  "subsidenceOrStructuralFault": {
1762
1796
  "yesNo": "variant",
1797
+ "detailsAnalysis": {},
1763
1798
  "details": "string",
1764
1799
  "attachments": "string"
1765
1800
  },
@@ -2392,6 +2427,7 @@
2392
2427
  "yearInstalled": "integer",
2393
2428
  "panelsOwnedOutright": {
2394
2429
  "yesNo": "variant",
2430
+ "detailsAnalysis": {},
2395
2431
  "details": "string",
2396
2432
  "attachments": "string",
2397
2433
  "associatedCost": {
@@ -2401,6 +2437,7 @@
2401
2437
  },
2402
2438
  "panelProviderLease": {
2403
2439
  "yesNo": "variant",
2440
+ "detailsAnalysis": {},
2404
2441
  "details": "string",
2405
2442
  "attachments": "string"
2406
2443
  },
@@ -2589,6 +2626,7 @@
2589
2626
  "heating": {
2590
2627
  "heatingSystem": {
2591
2628
  "heatingType": "variant",
2629
+ "detailsAnalysis": {},
2592
2630
  "centralHeatingDetails": {
2593
2631
  "centralHeatingFuel": {
2594
2632
  "centralHeatingFuelType": "variant",
@@ -2695,18 +2733,22 @@
2695
2733
  "difficultiesObtainingInsurance": {
2696
2734
  "abnormalRiseInPremiums": {
2697
2735
  "yesNo": "variant",
2736
+ "detailsAnalysis": {},
2698
2737
  "details": "string"
2699
2738
  },
2700
2739
  "subjectToHighExcesses": {
2701
2740
  "yesNo": "variant",
2741
+ "detailsAnalysis": {},
2702
2742
  "details": "string"
2703
2743
  },
2704
2744
  "subjectToUnusualConditions": {
2705
2745
  "yesNo": "variant",
2746
+ "detailsAnalysis": {},
2706
2747
  "details": "string"
2707
2748
  },
2708
2749
  "refused": {
2709
2750
  "yesNo": "variant",
2751
+ "detailsAnalysis": {},
2710
2752
  "details": "string"
2711
2753
  }
2712
2754
  },
@@ -2716,6 +2758,7 @@
2716
2758
  "whoInsures": "string",
2717
2759
  "insuranceClaims": {
2718
2760
  "yesNo": "variant",
2761
+ "detailsAnalysis": {},
2719
2762
  "details": "string"
2720
2763
  }
2721
2764
  },
@@ -3140,23 +3183,28 @@
3140
3183
  "legalBoundaries": {
3141
3184
  "partOutsideLegalOwnership": {
3142
3185
  "yesNo": "variant",
3186
+ "detailsAnalysis": {},
3143
3187
  "details": "string"
3144
3188
  },
3145
3189
  "partOnSeparateSiteOrDeed": {
3146
3190
  "yesNo": "variant",
3191
+ "detailsAnalysis": {},
3147
3192
  "details": "string"
3148
3193
  },
3149
3194
  "boundariesDifferFromTitlePlan": {
3150
3195
  "yesNo": "variant",
3196
+ "detailsAnalysis": {},
3151
3197
  "details": "string",
3152
3198
  "attachments": "string"
3153
3199
  },
3154
3200
  "boundaryAlterationProposal": {
3155
3201
  "yesNo": "variant",
3202
+ "detailsAnalysis": {},
3156
3203
  "details": "string"
3157
3204
  },
3158
3205
  "ownership": {
3159
3206
  "areBoundariesUniform": "variant",
3207
+ "detailsAnalysis": {},
3160
3208
  "uniformBoundaries": {
3161
3209
  "left": "string",
3162
3210
  "right": "string",
@@ -3168,14 +3216,17 @@
3168
3216
  },
3169
3217
  "haveBoundaryFeaturesMoved": {
3170
3218
  "yesNo": "variant",
3219
+ "detailsAnalysis": {},
3171
3220
  "details": "string"
3172
3221
  },
3173
3222
  "adjacentLandIncluded": {
3174
3223
  "yesNo": "variant",
3224
+ "detailsAnalysis": {},
3175
3225
  "details": "string"
3176
3226
  },
3177
3227
  "flyingFreehold": {
3178
3228
  "yesNo": "variant",
3229
+ "detailsAnalysis": {},
3179
3230
  "details": "string"
3180
3231
  }
3181
3232
  },
@@ -3204,6 +3255,7 @@
3204
3255
  },
3205
3256
  "electricalWorkSince2005": {
3206
3257
  "yesNo": "variant",
3258
+ "detailsAnalysis": {},
3207
3259
  "yearWorkCarriedOut": "integer",
3208
3260
  "details": "string",
3209
3261
  "suppliedCertificate": {
@@ -3232,6 +3284,7 @@
3232
3284
  "hasValidGuaranteesOrWarranties": "variant",
3233
3285
  "newHomeWarranty": {
3234
3286
  "yesNo": "variant",
3287
+ "detailsAnalysis": {},
3235
3288
  "details": "string",
3236
3289
  "attachments": "string"
3237
3290
  },
@@ -3289,6 +3342,7 @@
3289
3342
  },
3290
3343
  "outstandingClaimsOrApplications": {
3291
3344
  "yesNo": "variant",
3345
+ "detailsAnalysis": {},
3292
3346
  "details": "string",
3293
3347
  "attachments": "string"
3294
3348
  },
@@ -3298,6 +3352,7 @@
3298
3352
  },
3299
3353
  "titleDefectInsurance": {
3300
3354
  "yesNo": "variant",
3355
+ "detailsAnalysis": {},
3301
3356
  "details": "string",
3302
3357
  "attachments": "string"
3303
3358
  }
@@ -4654,9 +4709,18 @@
4654
4709
  "documentTypeCode": "string",
4655
4710
  "documentDate": "string",
4656
4711
  "retrievedOn": "string",
4657
- "filedUnder": "string"
4712
+ "filedUnder": "string",
4713
+ "summary": {},
4714
+ "availability": "string",
4715
+ "availabilityCode": "string",
4716
+ "entryNumbers": [
4717
+ "string"
4718
+ ],
4719
+ "backdated": "boolean"
4658
4720
  }
4659
- ]
4721
+ ],
4722
+ "keyFacts": {},
4723
+ "covenantAnalysis": {}
4660
4724
  }
4661
4725
  ],
4662
4726
  "searches": [
@@ -5688,7 +5752,8 @@
5688
5752
  "datetime": "string",
5689
5753
  "originatorRole": "string",
5690
5754
  "destinationRole": "string",
5691
- "messageText": "string"
5755
+ "messageText": "string",
5756
+ "pdtfPath": "string"
5692
5757
  }
5693
5758
  },
5694
5759
  "externalIds": {
@@ -1,180 +0,0 @@
1
- # Backend LMS Profile Filtering Spec
2
-
3
- ## Context
4
-
5
- Moverly will consume `@pdtf/schemas@dev` for early access to schema changes, but
6
- LMS should only receive data shaped to the `pdtf-transaction.json` profile they
7
- currently support.
8
-
9
- This compatibility layer belongs in Moverly backend services because it is an
10
- integration-boundary concern. The PDTF schema package should not carry
11
- LMS-specific profile code unless the capability later becomes generic and useful
12
- to PDTF consumers.
13
-
14
- ## Target Profile
15
-
16
- Initial LMS profile:
17
-
18
- - Source: LMS-supplied `pdtf-transaction.json`
19
- - Profile id: `lms-2026-05-08`
20
- - Schema id: `https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json`
21
- - Raw SHA-256:
22
- `5135ffd6158bbe48955ae630cf9cae42ba18f6cd522daed771cd3e44136283d7`
23
- - Canonical SHA-256:
24
- `98aeebe4231557c1aa7bc5182cbb5318d28af32cdcbe3b293feb61dca1e8d6f5`
25
-
26
- The LMS profile is not an official PDTF release. It is a pinned recipient
27
- profile supplied by LMS. When LMS can support an official PDTF release, move the
28
- target profile to that release artifact instead.
29
-
30
- ## Configuration
31
-
32
- Add a backend environment variable:
33
-
34
- ```bash
35
- LMS_PDTF_TARGET_PROFILE=lms-2026-05-08
36
- ```
37
-
38
- Behaviour:
39
-
40
- - Non-production may default to `lms-2026-05-08`.
41
- - Production must fail startup or alert loudly if the variable is missing or
42
- unknown.
43
- - Logs and telemetry must include the selected profile id.
44
-
45
- ## Scope
46
-
47
- Apply LMS profile filtering to:
48
-
49
- - backend endpoints that expose PDTF transaction data to LMS;
50
- - webhooks sent to LMS;
51
- - verified claim payloads included in LMS-facing API responses or webhooks.
52
-
53
- Do not apply LMS filtering to:
54
-
55
- - stored/source Moverly verified claims;
56
- - internal Moverly workflows;
57
- - non-LMS partners;
58
- - frontend schema rendering, except where frontend displays backend-provided
59
- compatibility metadata.
60
-
61
- ## Filtering Rules
62
-
63
- Treat the target profile as closed for outbound LMS payloads, even though PDTF
64
- schemas generally do not declare `additionalProperties: false`.
65
-
66
- For transaction payloads:
67
-
68
- 1. Build the normal internal Moverly/PDTF payload.
69
- 2. Filter unknown top-level and nested fields against the selected LMS target
70
- schema.
71
- 3. Validate the filtered payload against the selected LMS target schema.
72
- 4. Send only the filtered payload.
73
-
74
- For verified claims:
75
-
76
- 1. Iterate each verified claim envelope.
77
- 2. Inspect each `claims` path/value pair independently.
78
- 3. Keep the line item only if:
79
- - the path exists in the selected LMS target schema; and
80
- - the value validates against that path's subschema.
81
- 4. Drop unsupported or invalid line items.
82
- 5. Preserve the verified claim envelope if at least one line item remains.
83
- 6. Drop the envelope only if all line items are suppressed.
84
- 7. Preserve envelope metadata such as `id`, `transactionId`, `schemaVersion`,
85
- `verification`, and `terms_of_use`.
86
- 8. Do not mutate the source verified claim.
87
-
88
- Do not map paths or transform values. If a field needs structural mapping, that
89
- is a separate business/product decision and should not happen implicitly in this
90
- filtering layer.
91
-
92
- ## Selective Disclosure Semantics
93
-
94
- Suppression means "not disclosed to LMS under this profile".
95
-
96
- It does not mean "the seller/source did not assert this". Any backend feature
97
- answering questions such as "did the seller make an assertion about flooding?"
98
- must query the source verified claims or explicit suppression metadata, not the
99
- LMS-filtered payload.
100
-
101
- ## Suggested Backend Module
102
-
103
- Create a small backend-owned module, for example:
104
-
105
- ```text
106
- src/integrations/lms/pdtfProfile/
107
- lms-2026-05-08/pdtf-transaction.json
108
- lms-2026-05-08/metadata.json
109
- filterTransactionForProfile.ts
110
- filterVerifiedClaimsForProfile.ts
111
- profileRegistry.ts
112
- ```
113
-
114
- The implementation should:
115
-
116
- - load the selected profile by id;
117
- - verify the pinned file hash in tests;
118
- - use JSON Schema parsing rather than hand-maintained path allowlists;
119
- - compile validators with the same AJV draft/settings used for PDTF validation;
120
- - cache subschema validators by `profileId:path`;
121
- - return suppression metadata without logging claim values.
122
-
123
- ## Observability
124
-
125
- Record:
126
-
127
- - partner: `LMS`;
128
- - target profile id;
129
- - profile raw/canonical hash;
130
- - endpoint or webhook name;
131
- - transaction id;
132
- - claim line items before filtering;
133
- - claim line items after filtering;
134
- - verified claim envelopes before filtering;
135
- - verified claim envelopes after filtering;
136
- - envelopes dropped;
137
- - unsupported path count;
138
- - invalid value count;
139
- - suppressed paths, where safe;
140
- - validation errors, without sensitive values.
141
-
142
- ## Tests
143
-
144
- Backend tests should cover:
145
-
146
- - selected profile id is read from env;
147
- - unknown production profile id fails loudly;
148
- - profile metadata hashes match the bundled LMS schema file;
149
- - transaction filtering removes unknown top-level fields;
150
- - transaction filtering removes unknown nested fields;
151
- - filtered transaction validates against the LMS target profile;
152
- - a field valid in `@pdtf/schemas@dev` but absent from LMS is suppressed;
153
- - verified claim line items are filtered independently;
154
- - verified claim envelope metadata is preserved;
155
- - envelopes are dropped only when all line items are suppressed;
156
- - source verified claims are not mutated;
157
- - suppression metadata is returned and contains no claim values.
158
-
159
- ## Rollout
160
-
161
- 1. Publish and install `@pdtf/schemas@dev` in Moverly backend.
162
- 2. Add the LMS target profile module and tests.
163
- 3. Set `LMS_PDTF_TARGET_PROFILE=lms-2026-05-08` in non-production.
164
- 4. Run LMS endpoint and webhook regression tests.
165
- 5. Deploy on Monday morning behind normal backend release controls.
166
- 6. Monitor suppression and validation telemetry.
167
- 7. Set the production env var and complete go-live.
168
- 8. Keep the previous behaviour available for rollback until LMS confirms the new
169
- payloads are accepted.
170
-
171
- ## Future Profiles
172
-
173
- For a new LMS-supported PDTF release:
174
-
175
- 1. Add the official released `pdtf-transaction.json` artifact or reference.
176
- 2. Give it a clear profile id, for example `pdtf-3.6.0`.
177
- 3. Add metadata and hash tests.
178
- 4. Update `LMS_PDTF_TARGET_PROFILE`.
179
- 5. Deploy backend and monitor telemetry.
180
- 6. Retain the previous profile until rollback is no longer needed.