File size: 179,931 Bytes
010acde f8c1da5 66138c3 010acde 1c27bee 710340d 44e63ec c8db5b1 10b0261 6dafc4b 6787ca3 d82f2c0 afac81f 37a2f91 d14d999 bdf6c1f 53be7e2 7e8a2d5 ac995b1 e517ae4 7e134bc 6f910ea 713af81 55b95f3 f49cf24 01f2fa5 e15838a 0113c21 f93de71 b9805ee 3bae649 48c7db8 ae4ba74 537a3ef 3b0aae3 40e833f ab95057 187c949 42b012c 50db15e 8e06694 acec4e8 51cf791 a297661 136f298 b452d03 f879551 6e240e0 5778d8d b5fc9e6 0c497a1 238dc89 a4a8e6f 3d53811 90dbc97 676aef6 cf20de0 2ea77c2 ab2ce3b 7f21133 7704420 1b614e0 ce0acfb cb6870c b694e5b c2db933 284b287 4485bf8 bcb38d3 c0f258a 6b78bec d376de0 bbf9a55 c377fd6 3624d21 30afdd4 c33cd79 19bbb42 245c80a 09af7e8 22a74d4 4f7acc4 ae1c46e d23095d fba7687 952b689 a0bd519 0e8b282 482cba7 c7c2586 671c2bf 5728b6c 57daeff 1c67d0f 6424f48 cdbaa1d 190404e 33aafbd 3655587 39918b9 4c9911c b8c9238 8316c9e 95f6040 8f13e9f e1f74e0 728e786 c776cd0 9787afc dd750af a1635a5 3579cc4 e2a6045 9ff198d 8a6d738 142d4cb b730745 3fbdc49 ddd93d5 c52db3b f8b83d9 cd3dd4c a0f9a6d d8571fe b8a7968 7761fff 071f6b7 22e336d fd1c739 2aca128 7fd55a1 5efab84 98f9b39 71e505e cf45ed3 fd8fde2 13f8349 31bcd46 abd65d4 a56baeb a598ebb 41cce5d c248c55 f23046d 2aa7e35 7a05936 638d56b 58b0eb7 a863275 1480355 94574f6 f1ba0d2 be29204 6740a9c 52aca4a f3b2964 6542cd2 ae16be1 59ce008 443165e 10b31f2 cb6a89d ee654dd 9b92b16 92800b5 1c08bd8 f3ff093 fdff40a d7fa9fd 01aefa2 51f3f48 a936c8c 899bbba 75ffee4 f525c4a eac9f49 345f9ce c1bb3ed 485180d 13079be b026e4f db252c6 29279fd 96b1c5f 9fde578 5256942 149c201 612aee4 f47beb1 eaa66f5 413ea84 d226cc0 5c64486 c4dfa9d 7f999fd 61c0834 6b4b0f9 7b2dc1c 8604dd1 0196d8e 37a275a c8590d5 89fbabd 12313a3 d24d8b9 3760254 0a30e8c c3bab00 ba3cfb0 8dc21db ae8c29b 3363297 73c9142 73a5d10 9829445 151f41b 615aedc 03d6b2b 6e5a135 440e702 e119955 b7af4bd d7db395 f8ab1ad 95639cd d146bf5 a75bd1f ed15e8f 7e01608 c414231 4ed547e 5179729 5529416 e1f7eb5 7677c47 48a91c5 9ce5fc1 39edd9e 5a6dc15 3533771 75e17d6 7869ad1 6715437 ae4d61e e7c8459 bcdf90a 3ae56cb 3bc8c35 ec10c78 459ec72 f68606e 672243a b0607b0 27a7f96 71447b9 78372ba 78e7b7c 50ed27d 5b2e2cd 46e0659 d6146fc 23ce463 d048ff6 799143f b913272 16c1385 3e6cd09 81414f0 055a3c0 c0887d4 3ad153d 1c83d71 c6b0240 78ab0c4 436277e 6f245fc 7731a88 dcf170a ef920e6 efc9591 39c456c fbab93d 8c0a4c8 c6b4a1e a5dc227 29c0ea6 826c333 e0c5881 182167b c987618 a6c1cca 8641912 5369440 744c236 3ed15e9 9c0f602 dd27994 cd0a2cf 27d9e92 9538f73 f69bc50 fc23200 8d00a05 7c1c408 eb82d5d 26e2130 0448bfa 586efda 1a0b6ef beb8417 b158258 0cb899f 4447440 1ed43d4 92b30ee ff6283b 6a55e9b 69d6bf3 965aefa 9122099 e0c0b4e a6f41d2 e9347cf 5f7b2df 15d7fca aee92ff 243d687 63f9347 34e2ed8 20f141b b597a58 35717f5 54f520a 447b0d2 15d7fca cedc6d0 549f772 2cd958c a7b0334 9383f93 08a9eaf 4a95b43 2f34f24 6d72837 59e33ea cedc6d0 d61efed ccfeae3 d8e6444 bdf3988 fccce82 fb0fb45 7f44ac3 8c1d84d 084bd42 51dd462 d61efed 40af75f 78388ea 9a4f80a 0b0d696 dce4f2f efb7dd2 50a1f8a 6bf0f1a 40af75f 722cbae e626cee 40af75f f1f5ce1 ebc1faa 7bc6d15 eba06e4 8d0c296 20d7c36 3c27f25 a9e35cf 324b48a b9a9445 e0fd654 31716f1 f00861b dcdd22a 5de3e22 4653a55 cd738dd c7ae523 37371f3 6e01995 517cec8 cef895c e543c57 4a7e291 9f649eb 0cdf16d 90bb1f2 0ea0eb6 f3fe185 6d0ce63 2d840a0 8af2522 8511f2b d9b6d88 ec600cd 04948c0 f43ec68 40de183 d3ab5c7 2b1ac7e b6edd41 2a8d5eb a15073f 3ee5089 747e6d7 3307be0 aafc848 b658af6 6d73f71 bc3e762 ce4435c c1770e7 a611565 bae6801 213e61c e1e058d 65208e6 f50958a 62523d4 7bb397d ed9db0e 4ec14d9 41ceee2 0960409 a25d1fb 17714da da6b345 b7976c2 8596d76 88cec55 ed9db0e 696a479 ba3f736 b0ed587 2974ac4 51dbd8d 6be93ce e5f6270 289bfb3 b7981cc 94a8504 696a479 c1e91e2 ec64722 01f224d 4ba0b42 d08c89c 7e35e0b 6dbc461 3d319a8 b851d92 b18c61e c1e91e2 74af72a cd2144d 6cae59c 2a95afe 93151ec 85794cd 529c559 5a372c2 c9683c6 944d9a5 74af72a 99a6f51 6a6674d 1332be7 066a44a 052e900 8dc2612 1c40132 257262a 47bc718 b095795 99a6f51 eae7f32 83bf7b2 62d407b e392f6a a9b587d b6e9de3 7c60f6d 9974ab4 8765f5d ad83778 7ddaf82 f6bc437 63d4cac 71f6200 9a625b4 6d07d15 b9f1c35 33c79fb e93dbf5 19fce7e 4a30d96 546209f 1a02853 247470e 842a20c 947fb1f f54d873 1451ae3 a239eb1 26cfc68 4378ff9 ef1d67d a58128c 8fb42db a10771c 959f3e9 693e7bc 4485c56 7335557 7457227 5e20728 3e0175a f4ec049 855e955 ec2de4d 0d8ecb5 0511560 2c45626 9334b03 a1fd4e2 b16a43c 96e8a6c 707168b ac0c9c0 3f83f79 d96f669 0b8c695 39181ca 21250a9 006789e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 | # Provisional full-game backlog
Planning revision: **2026-10-11**. Target: the supplied Urban Terror 4.3.4 reference, rewritten in **Rust + Bevy + Solari**, with a working client and dedicated server on **macOS and Linux**.
This is a large provisional work breakdown, not a claim that the game has been fully understood. It expands the remaining work and makes dependencies visible. The canonical [research](REVERSE_ENGINEERING_TODO.md), [asset pipeline](ASSET_PIPELINE_TODO.md), [rewrite](RUST_BEVY_SOLARI_TODO.md), [validation](VALIDATION_AND_MILESTONES.md) and [file coverage](FILE_COVERAGE_TODO.md) checklists retain their current statuses. `PROV` IDs are stable planning references; all items below start unchecked. When promoting an item, link it to the canonical task and its evidence rather than copying completion status automatically.
## Goals and scope
- Document everything found in the installation: binaries, libraries and DLL dependencies, QVMs, shaders, rendering, logic, textures, maps, models, audio, configuration, resources, metadata and auxiliary content.
- Preserve and analyze every extracted occurrence, including overridden, duplicate, unused and unknown variants. A representative example does not close a format or content family.
- Produce reproducible unpacking, analysis, conversion and validation scripts, then versioned runtime content with full source provenance.
- Replace the original client and server behavior with maintainable Rust systems and native platform delivery. The release must not require original executable or QVM gameplay code.
- Establish Solari feasibility on the intended macOS and Linux hardware before depending on its capabilities. Preserve gameplay-critical visibility and record rendering deviations explicitly.
- Keep original installation objects exclusively in ignored `.cache/`; extracted, analysis and converted assets belong under `assets/` through Git LFS/Xet. Code and documentation belong in ordinary Git in the same Hugging Face repository.
See [GOALS.md](GOALS.md) for the full definition of completion and [STORAGE.md](STORAGE.md) for the enforced repository policy.
## Evidence baseline and limits
The current inventory records 39 original files and 23 PK3 archives. Extraction preserves 9,835 file occurrences and 743 directory entries. Static research has decoded all 659,048 QVM instructions and disassembled the eight supplied native files. Decoding and disassembly do not establish full semantic coverage. Imported or dynamically loaded DLLs are within scope even when no standalone DLL exists in the supplied snapshot.
Read [findings](FINDINGS.md), [extraction evidence](extraction/README.md), [binary research](research/README.md), [native coverage](research/native/COVERAGE.md), [authentication drop](research/AUTH_DROP.md), [deferred authentication](research/DEFERRED_AUTH.md) and [engine control](research/ENGINE_CONTROL.md) before using this list. The original binaries and complete QVM modules have not been launched in the current research baseline. Synthetic instruction fixtures are explicitly narrower evidence than original-runtime tests.
## Working rules and ordering
Each task needs a concrete deliverable, a reproduction command or scenario, and recorded verification before completion. Format and subsystem tasks apply to every applicable inventory item. Write evidence with source hashes and exact addresses, instruction indices or member offsets; label hypotheses and approximations. Record negative findings and unexplained bytes as well as successful interpretations.
Use this dependency order: inventory and provenance β static recovery plus reference observation β behavioral specifications and fixtures β conversion contracts β a platform-verified vertical slice β complete implementation and content coverage β cross-platform conformance and release. Static analysis, reference-harness preparation and format inspection can progress together; renderer feasibility should happen early. There are no time estimates here because unresolved behavior and platform feasibility can change the work materially.
For implementation items, the minimum done condition is a documented contract, an implementation consuming traceable content, and a relevant reference comparison on the required platforms. For research items, it is reproducible evidence and explicit remaining uncertainty. For asset items, it is validated conversion with source/variant provenance and a loss report. Apply the [research ledger conventions](RESEARCH_LEDGER.md) throughout.
## Work breakdown
### First research batch
Progress: [RE-232β234 / TIME-001β003](research/FRAME_TIMING.md) now cover Linux ELF64 elapsed modification, event sources and pause predicates. The [RE-237β239 follow-up](research/EVENT_QUEUES.md) resolves the pause-field address/bot chain and adds queue/journal evidence. The [RE-241β243 announcement pass](research/AUTH_ANNOUNCEMENTS.md) recovers label tables and recipient paths; The [RE-245β247 cvar pass](research/GAME_CVARS.md) adds all 126 main registration rows and resolves auth_verbosity/callers. The [RE-249β251 change pass](research/CVAR_CHANGES.md) adds cache/notification behavior, four numeric correction branches and direct registration coverage. The [RE-253β255 query pass](research/AUTH_QUERIES.md) adds selector helpers, command-role routing and internal authentication modes. The [RE-257β259 bounds/entry pass](research/SELECTOR_BOUNDS.md) adds integer parsing, selector storage/count evidence and native/QVM/chat route connections. The [RE-261β263 chat pass](research/CHAT_PATHS.md) adds native command metadata/filter evidence and bounded message/recipient paths, including the documented argument-mapping correction. The [RE-265β267 delivery pass](research/CHAT_DELIVERY.md) adds bounded dead-chat predicates, formatter argument routing and echo/fanout calls. The [RE-269β271 expansion pass](research/CHAT_EXPANSION.md) adds marker states, twelve key comparisons and health/momo branches. The [RE-273β275 item/time pass](research/CHAT_ITEMS_TIME.md) adds packed ammunition fields, sampled names and countdown branches. The [RE-277β279 location pass](research/CHAT_LOCATIONS.md) adds leader selection, cache/format boundaries and location-list/spatial evidence. The [RE-281β283 crosshair pass](research/CHAT_CROSSHAIR.md) adds finite geometry fixtures, trace arguments and result routing. The [RE-285β287 native spatial pass](research/NATIVE_SPATIAL.md) confirms Linux trig/spatial services, VM pointer branches and collision/query evidence. The [RE-289β291 collision pass](research/NATIVE_COLLISION.md) adds native candidate filters, result decisions and model/field evidence. The [RE-293β295 composition pass](research/COLLISION_COMPOSITION.md) adds three-lane byte-copy/status agreement and world-result routing. The [RE-297β299 loop pass](research/COLLISION_LOOP.md) adds signed count/status gates, parity scheduling and related sentinel normalization. The [RE-301β303 area pass](research/AREA_QUERIES.md) adds registered address arithmetic, inclusive overlap and count/split ordering boundaries. The [RE-305β307 world-link pass](research/WORLD_LINKS.md) adds bounded sector construction, strict placement/head insertion and unlink state/repair behavior. The [RE-309β311 bounds pass](research/LINK_BOUNDS.md) adds radius/padding composition, leaf-return gates and inline removal evidence. The [RE-313β315 metadata pass](research/LEAF_METADATA.md) adds area-slot/cluster loops and guarded leaf/query output contracts. PROV-002 remains open for full output/reset coverage. PROV-001 remains open for complete scheduling and platform coverage.
Start with the open questions raised by the current binary evidence. These tasks depend on the linked reports, not on a working rewrite.
- [ ] PROV-001: Trace Com_EventLoop, Com_Frame and SV_Frame together, including elapsed-time adjustment, timescale, pause, catch-up and restart ordering; extend RE-231.
- [ ] PROV-002: Recover the authentication announcement helperβs format strings, recipients, role/status predicates and third argument; extend RE-230.
- [ ] PROV-003: Find every reset and aliased access to the deferred authentication fields, beyond literal offset references.
- [ ] PROV-004: Trace Linux error recovery through every mode, recursive errors, rapid-error promotion and cleanup; compare with Windows and macOS.
- [ ] PROV-005: Render the reconstructed Windows icons and classify the surplus DIB bytes with byte-preserving evidence; extend RE-217.
- [ ] PROV-006: Trace address-parser failures, unchecked send arguments and client-drop state transitions across all native targets.
- [ ] PROV-007: Build a prioritized list of the remaining 519 unresolved QVM indirect-call sites, with targets, confidence and blockers.
- [ ] PROV-008: Create a cross-platform comparison table for the custom authentication exports and traps; distinguish absence from missing evidence.
- [ ] PROV-009: Define a reference execution harness and select an environment for each original architecture before launching binaries.
- [ ] PROV-010: Produce the first reference fixture for one fully traced gameplay behavior, recording synthetic versus original-runtime evidence.
- [ ] PROV-011: Audit existing scripts for assumptions about instruction indices, signed arithmetic and partial function boundaries.
- [ ] PROV-012: Promote the next bounded research batch into canonical RE tasks with concrete deliverables and checks.
### Evidence, scope and coverage
Apply these tasks to every installation file and every archive-member occurrence. Existing inventory and extraction manifests are the starting point.
- [ ] PROV-013: Freeze a reference snapshot identity with original hashes, archive identities and game version.
- [ ] PROV-014: Reconcile the installation inventory against the cache, including hidden files and auxiliary directories.
- [ ] PROV-015: Assign every file an owner, format, analysis status and final disposition in a machine-readable coverage registry.
- [ ] PROV-016: Assign every archive member occurrence a source identity independent of its eventual runtime path.
- [ ] PROV-017: Record overridden, duplicate, case-colliding and apparently unused variants without discarding them.
- [ ] PROV-018: Classify unknown file signatures through bounded parsers and hex inspection.
- [ ] PROV-019: Record trailing bytes, alignment, padding and unexplained regions for every binary format.
- [ ] PROV-020: Separate verified observations, source-based comparisons, hypotheses and implementation decisions in reports.
- [ ] PROV-021: Attach addresses, instruction indices, offsets, hashes and reproduction commands to behavior claims.
- [ ] PROV-022: Document uncertainty and competing interpretations instead of assigning premature semantic names.
- [ ] PROV-023: Record all scriptsβ versions, inputs, outputs, dependencies and deterministic regeneration commands.
- [ ] PROV-024: Create a report index that connects each behavior specification to evidence, fixtures and implementation tasks.
- [ ] PROV-025: Audit all completed canonical tasks against their documented acceptance evidence.
- [ ] PROV-026: Define how newly discovered files, services or behaviors expand the backlog.
- [ ] PROV-027: Document the handling of authoring files, examples, broken content and nonplayable maps.
- [ ] PROV-028: Establish a final coverage gate requiring a justified disposition for every file, member variant and unknown region.
### Reference execution and observation
Execution work is future work: static decoding and synthetic instruction tests do not establish runtime conformance.
- [ ] PROV-029: Prepare reproducible reference environments for Linux x86 and x86_64 executables.
- [ ] PROV-030: Prepare a reference environment for Windows PE32 client and dedicated server.
- [ ] PROV-031: Prepare a compatible reference environment for the macOS x86_64 executable and bundled SDL library.
- [ ] PROV-032: Record original platform prerequisites and distinguish environmental failures from game behavior.
- [ ] PROV-033: Capture process arguments, environment, configuration, package search paths and startup logs.
- [ ] PROV-034: Instrument native-to-QVM calls, syscall arguments, return values and error exits.
- [ ] PROV-035: Capture user commands, snapshots, entity states and game events at stable boundaries.
- [ ] PROV-036: Control seeds, clocks, inputs and initial state for repeatable gameplay traces.
- [ ] PROV-037: Capture reference images with camera, map, settings, frame time and viewport metadata.
- [ ] PROV-038: Capture audio events and output with timing and channel metadata.
- [ ] PROV-039: Capture network traffic for local server, remote connection, authentication and downloads.
- [ ] PROV-040: Create isolated local substitutes for unavailable external endpoints where protocol evidence permits.
- [ ] PROV-041: Document what cannot be observed when historical services are unavailable.
- [ ] PROV-042: Build replayable scenarios for startup, connect, map change, reconnect, disconnect and shutdown.
- [ ] PROV-043: Test malformed input and recoverable failure paths with resource and timeout limits.
- [ ] PROV-044: Compare synthetic QVM fixtures against original execution before using them as conformance oracles.
### QVM decoding, ABI and program recovery
Extend the existing complete instruction decode into a behavior specification for cgame, qagame and ui.
- [ ] PROV-045: Validate QVM headers, segments, BSS, relocation/jump metadata and loader rejection rules.
- [ ] PROV-046: Verify function boundaries, shared tails and unusual control flow against VM interpreter semantics.
- [ ] PROV-047: Recover all vmMain command dispatch cases and argument layouts for each module.
- [ ] PROV-048: Recover the complete standard and custom syscall table for each module.
- [ ] PROV-049: Trace every direct and indirect call into a module call graph.
- [ ] PROV-050: Resolve jump tables, computed branches and function-pointer tables with bounds and provenance.
- [ ] PROV-051: Track globals and local-stack objects through loads, stores, aliases and pointer arithmetic.
- [ ] PROV-052: Recover arrays and record strides, capacities, sentinels and initialization order.
- [ ] PROV-053: Recover game, client, player, entity, UI and network-related structure layouts.
- [ ] PROV-054: Identify constants, flags, enums and bitfields without treating inferred names as original symbols.
- [ ] PROV-055: Recover string tables, formatting conventions, localization assumptions and command parsers.
- [ ] PROV-056: Identify compiler/library idioms and separate them from game-specific behavior.
- [ ] PROV-057: Document integer overflow, shifts, sign extension, division and float conversion semantics.
- [ ] PROV-058: Document VM memory checking, pointer translation and host-call marshalling.
- [ ] PROV-059: Determine required QVM version and extension support across native engines.
- [ ] PROV-060: Recover cgame prediction, interpolation, HUD and visual event processing.
- [ ] PROV-061: Recover qagame authoritative initialization, simulation, client lifecycle and shutdown.
- [ ] PROV-062: Recover UI menu flow, settings, server browser and authentication response handling.
- [ ] PROV-063: Recover bot-related QVM behavior and engine interfaces.
- [ ] PROV-064: Compare common algorithms duplicated between modules for drift or shared invariants.
- [ ] PROV-065: Build an annotated intermediate representation suitable for cross-references and structured analysis.
- [ ] PROV-066: Create small executable fixtures for recovered branches and boundary conditions.
- [ ] PROV-067: Track unresolved instructions, calls and data regions explicitly through completion.
- [ ] PROV-068: Document which VM behavior is research-only and which semantics the Rust implementation must preserve.
### Native binaries, libraries and DLLs
Analyze all eight supplied native files and all discovered imported, dynamically loaded or statically linked components.
- [ ] PROV-069: Map executable headers, sections, segments, entry points and load permissions for every target.
- [ ] PROV-070: Analyze imports, exports, relocations, thunks, linkage tables and dynamic loader behavior.
- [ ] PROV-071: Inventory external Windows DLL requirements and dynamically constructed library names.
- [ ] PROV-072: Inventory Linux shared libraries, symbol versions and platform-specific dependencies.
- [ ] PROV-073: Inventory macOS frameworks, dylibs, install names and architecture requirements.
- [ ] PROV-074: Recover statically linked library boundaries and likely versions with confidence labels.
- [ ] PROV-075: Compare the bundled SDL implementation and retained symbols with pinned upstream sources.
- [ ] PROV-076: Annotate all retained STABS records and map source/object provenance to code ranges.
- [ ] PROV-077: Document the absence or presence of debug types and limits on structure recovery.
- [ ] PROV-078: Classify all native text ranges, data tables, resources and unexplained gaps.
- [ ] PROV-079: Analyze startup, command-line parsing, configuration loading and shutdown order.
- [ ] PROV-080: Recover platform input, window, clipboard, cursor, focus and fullscreen behavior.
- [ ] PROV-081: Recover audio initialization, mixing interfaces, device changes and cleanup.
- [ ] PROV-082: Recover native renderer entry points, GL state management and shader/backend paths.
- [ ] PROV-083: Recover engine networking, packet queues, address handling and socket error policy.
- [ ] PROV-084: Recover native VM loading, dispatch, extension gates and runtime checks.
- [ ] PROV-085: Recover filesystem mounting, package checks, pure-server behavior and downloads.
- [ ] PROV-086: Recover console, command buffer, cvar registry and command registration semantics.
- [ ] PROV-087: Analyze threading, synchronization, jobs, signal handlers and crash paths.
- [ ] PROV-088: Classify anti-cheat, authentication and integrity-related code with precise evidence.
- [ ] PROV-089: Recover PE resources and inspect all icon planes, masks and surplus data.
- [ ] PROV-090: Analyze macOS application metadata and platform bootstrap code.
- [ ] PROV-091: Produce a per-component decision: replace in Rust, use a dependency, retain only as research evidence, or investigate further.
- [ ] PROV-092: Verify every replacement decision against the required behavior rather than library-name similarity.
### Engine timing, filesystem and configuration
Specify engine services before relying on them in gameplay or asset conversion.
- [ ] PROV-093: Specify engine, simulation, render, server and network clock domains and units.
- [ ] PROV-094: Specify clock wrap, discontinuity, pause, timescale and long-frame behavior.
- [ ] PROV-095: Specify fixed-step accumulation, catch-up limits and tick ordering.
- [ ] PROV-096: Specify map restart, full map change and persistent versus reset state.
- [ ] PROV-097: Specify error modes, cleanup order, frame aborts and fatal termination.
- [ ] PROV-098: Recover archive discovery and runtime mount precedence from original execution.
- [ ] PROV-099: Recover loose-file overrides, writable paths and case-sensitive lookup behavior.
- [ ] PROV-100: Recover package checksums, pure lists and client package eligibility.
- [ ] PROV-101: Specify missing-file behavior, fallback lookup and diagnostics.
- [ ] PROV-102: Recover cvar types, defaults, flags, latched changes and persistence.
- [ ] PROV-103: Recover console command tokenization, quoting, aliases and buffered execution.
- [ ] PROV-104: Recover config execution order, bindings and command-line overrides.
- [ ] PROV-105: Recover save locations and configuration migration behavior.
- [ ] PROV-106: Specify server info, user info and protocol-visible key/value constraints.
- [ ] PROV-107: Specify file-handle, memory and other resource limits and their failure behavior.
- [ ] PROV-108: Document resource lifetime across reconnect, restart and renderer reset.
### Network, external services and demos
Do not assume historical services remain available; preserve protocol evidence and make replacement policy explicit.
- [ ] PROV-109: Recover packet framing, endian conventions, limits and sequence arithmetic.
- [ ] PROV-110: Recover connectionless discovery, challenge, connect and rejection messages.
- [ ] PROV-111: Recover reliable command queues, acknowledgements, retransmission and overflow behavior.
- [ ] PROV-112: Recover netchannel fragmentation, ordering, duplicate handling and timeouts.
- [ ] PROV-113: Recover user-command encoding, deltas, timestamps and validation.
- [ ] PROV-114: Recover snapshot/entity/player-state serialization and baseline selection.
- [ ] PROV-115: Recover configstrings, gamestate transmission and protocol negotiation.
- [ ] PROV-116: Recover bandwidth, rate, packet timing and snapshot scheduling settings.
- [ ] PROV-117: Recover prediction acknowledgements and reconciliation inputs.
- [ ] PROV-118: Specify disconnect, reconnect, zombie-client and timeout state transitions.
- [ ] PROV-119: Recover server browser, master registration and query protocols.
- [ ] PROV-120: Recover authentication packets, identities, permissions and deferred admission/drop behavior.
- [ ] PROV-121: Recover moderation, role announcements and failure/fallback policy.
- [ ] PROV-122: Recover download URLs, package negotiation, resume and integrity checks.
- [ ] PROV-123: Recover demo headers, message streams, playback clocks and compatibility rules.
- [ ] PROV-124: Recover demo seeking, interruption and malformed-demo handling.
- [ ] PROV-125: Identify voice, chat and radio network messages and recipient rules.
- [ ] PROV-126: Document LAN, IPv4, IPv6 and address parsing behavior where supported by evidence.
- [ ] PROV-127: Create protocol fixtures for every message family and edge case.
- [ ] PROV-128: Decide original-protocol compatibility versus a versioned replacement protocol with documented tradeoffs.
- [ ] PROV-129: Define local operation when external services are unavailable.
- [ ] PROV-130: Define authorization and transport requirements for any replacement external service.
### Movement, collision and combat
Use measured reference trajectories and events to turn static findings into a gameplay contract.
- [ ] PROV-131: Recover player hulls, stance transitions and collision masks.
- [ ] PROV-132: Recover walking, running, sprinting, acceleration, friction and stopping.
- [ ] PROV-133: Recover jumping, wall movement, ledge interactions and chained movement.
- [ ] PROV-134: Recover stamina, exhaustion, recovery and movement restrictions.
- [ ] PROV-135: Recover crouch, slide and stance-dependent speed or weapon restrictions.
- [ ] PROV-136: Recover gravity, slopes, stairs, clipping and grounded-state decisions.
- [ ] PROV-137: Recover water, ladder, trigger and environmental movement.
- [ ] PROV-138: Recover moving-platform interaction and collision with other players.
- [ ] PROV-139: Recover fall damage, impact response and landing effects.
- [ ] PROV-140: Recover view angles, angle quantization, recoil and camera behavior.
- [ ] PROV-141: Recover weapon definitions, inventory slots and gear restrictions.
- [ ] PROV-142: Recover selection, switching, raising, lowering and interrupted actions.
- [ ] PROV-143: Recover firing modes, burst cadence, ammunition and reload timing.
- [ ] PROV-144: Recover spread, random seeds, recoil accumulation and recovery.
- [ ] PROV-145: Recover hit traces, hit regions, penetration and material interactions.
- [ ] PROV-146: Recover projectile trajectories, bounce, fuse, explosion and ownership.
- [ ] PROV-147: Recover damage, armor, bleeding, healing and death attribution.
- [ ] PROV-148: Recover friendly fire, team damage and self-damage rules.
- [ ] PROV-149: Recover melee and special interactions discovered in game logic.
- [ ] PROV-150: Recover spawn protection, respawn, telefrag and loadout initialization.
- [ ] PROV-151: Recover animation/event synchronization for local and remote combat.
- [ ] PROV-152: Create boundary fixtures for simultaneous hits, death, reload, weapon change and tick transitions.
- [ ] PROV-153: Define acceptable numeric tolerances from reference measurements.
- [ ] PROV-154: Investigate cross-platform float and integer differences before fixing deterministic simulation policy.
### Entities, maps and game modes
Cover every supplied playable map and every discovered entity class; examples and unused variants still need documented dispositions.
- [ ] PROV-155: Recover map entity grammar, keys, defaults and parse errors.
- [ ] PROV-156: Recover spawn filters, mode flags, team restrictions and target linking.
- [ ] PROV-157: Recover movers, doors, buttons, platforms and timed entity thinks.
- [ ] PROV-158: Recover triggers, teleporters, hazards, breakables and usable objects.
- [ ] PROV-159: Recover item pickup, spawning, respawning and dropped-object behavior.
- [ ] PROV-160: Recover objective entities, ownership, activation and visibility rules.
- [ ] PROV-161: Recover map scripts, target chains and map-specific special behavior.
- [ ] PROV-162: Recover spawn-point choice, collision rejection and team balancing.
- [ ] PROV-163: Specify FFA scoring, match completion and respawn flow.
- [ ] PROV-164: Specify Last Man Standing round flow and elimination rules.
- [ ] PROV-165: Investigate the absent game-type ID 2 and unsupported or reserved mode handling.
- [ ] PROV-166: Specify Team Deathmatch scoring and team lifecycle.
- [ ] PROV-167: Specify Team Survivor rounds, readiness, elimination and tie resolution.
- [ ] PROV-168: Specify Follow the Leader selection, protection and victory conditions.
- [ ] PROV-169: Specify Capture and Hold objectives, timing and scoring.
- [ ] PROV-170: Specify Capture the Flag pickups, drops, returns and captures.
- [ ] PROV-171: Specify Bomb planting, defusing, timers and round outcomes.
- [ ] PROV-172: Specify Jump mode rules, timing, checkpoints and map metadata.
- [ ] PROV-173: Specify Freeze Tag freeze, thaw, elimination and round flow.
- [ ] PROV-174: Specify Gun Game progression, demotion and victory conditions.
- [ ] PROV-175: Specify instagib and other modifiers independently of base mode IDs.
- [ ] PROV-176: Specify warmup, ready state, intermission, overtime, timeouts and match restarts.
- [ ] PROV-177: Specify spectators, following, substitutes and team changes.
- [ ] PROV-178: Specify scoring, statistics, medals and end-of-match reporting.
- [ ] PROV-179: Specify votes, team votes, admin commands and permissions.
- [ ] PROV-180: Specify bot spawning, navigation, tactics and difficulty behavior.
- [ ] PROV-181: Create per-map entity, collision, lighting, objective and mode coverage records.
- [ ] PROV-182: Classify ut4_jumpents and other examples without assuming they are normal playable maps.
- [ ] PROV-183: Define the expected result for broken, unreachable or unused entity content.
- [ ] PROV-184: Create complete scenario matrices for every supported mode and supplied playable map.
### Client UI, input and audio behavior
Include the interactions around gameplay, not only the simulation.
- [ ] PROV-185: Recover startup screens, menu hierarchy and transitions.
- [ ] PROV-186: Recover server browser sorting, filtering, favorites and refresh behavior.
- [ ] PROV-187: Recover connect/download/loading progress and cancellation.
- [ ] PROV-188: Recover character, team, weapon and equipment selection flows.
- [ ] PROV-189: Recover HUD layout, scaling, colors, indicators and timers.
- [ ] PROV-190: Recover scoreboard, spectator overlays and match information.
- [ ] PROV-191: Recover console history, completion, scrolling and notifications.
- [ ] PROV-192: Recover chat, radio menus, message formatting and recipient feedback.
- [ ] PROV-193: Recover key bindings, mouse sensitivity, acceleration and controller-related paths if present.
- [ ] PROV-194: Recover focus loss, key repeat, text input and cursor capture.
- [ ] PROV-195: Recover localization, font fallback, text limits and encoding behavior.
- [ ] PROV-196: Recover audio event selection, spatialization, attenuation and channel priorities.
- [ ] PROV-197: Recover sound interruption, looping, music, volume and mute semantics.
- [ ] PROV-198: Recover accessibility-relevant visual/audio cues and current configuration behavior.
- [ ] PROV-199: Recover screenshot, demo recording and other user-facing utilities.
- [ ] PROV-200: Specify disconnected, unavailable-service and malformed-content error presentations.
- [ ] PROV-201: Create UI flow fixtures and reference captures for all menu states.
- [ ] PROV-202: Distinguish fidelity requirements from optional usability improvements in a decision log.
### Extraction, variants and conversion infrastructure
Keep original installation objects only in .cache. Preserve extracted variants under assets/extracted and converted products under clearly versioned asset paths.
- [ ] PROV-203: Revalidate all 23 PK3 manifests, occurrences, hashes and extraction safety guarantees.
- [ ] PROV-204: Verify extraction reproducibility from the original cache on a clean working directory.
- [ ] PROV-205: Audit path traversal, absolute paths, collisions and duplicate ZIP names.
- [ ] PROV-206: Record archive encoding, compression, CRC and damaged-member behavior.
- [ ] PROV-207: Build a format registry with strict parsers and explicit unsupported-format reports.
- [ ] PROV-208: Define stable source/member/content IDs for converted assets.
- [ ] PROV-209: Define a variant resolver only after runtime VFS precedence is established.
- [ ] PROV-210: Define conversion schemas, tool versions, settings and output manifests.
- [ ] PROV-211: Separate archival extraction, inspection products and runtime bundles.
- [ ] PROV-212: Add incremental conversion keyed by source hashes and settings.
- [ ] PROV-213: Add dependency tracking and invalidation for shared materials, models and maps.
- [ ] PROV-214: Provide dry-run, targeted conversion, full conversion and verification commands.
- [ ] PROV-215: Make conversion failures actionable with source identity and byte offsets.
- [ ] PROV-216: Preserve raw unknown subrecords and surplus bytes alongside interpreted data.
- [ ] PROV-217: Define archive/member provenance in every generated runtime asset.
- [ ] PROV-218: Detect missing references, cycles, case mismatches and cross-package dependencies.
- [ ] PROV-219: Provide content statistics, conversion coverage and semantic-loss reports.
- [ ] PROV-220: Verify parallel conversion produces deterministic output.
- [ ] PROV-221: Validate bundle schemas and checksums independently of the game runtime.
- [ ] PROV-222: Document fresh-checkout reconstruction and cache requirements.
### Textures, shaders, materials and fonts
Rendering conversion must retain the legacy semantics and document any approximation needed by Solari.
- [ ] PROV-223: Inventory every image format, dimensions, channels, alpha and color-space assumptions.
- [ ] PROV-224: Decode all texture variants without destructive overwriting.
- [ ] PROV-225: Recover texture coordinate orientation, wrapping and filtering behavior.
- [ ] PROV-226: Recover mip generation, compression, picmip and texture quality rules.
- [ ] PROV-227: Analyze alpha cutout thresholds, transparent edges and premultiplied-alpha assumptions.
- [ ] PROV-228: Classify diffuse, lightmap, normal-like, environment and UI imagery by actual use.
- [ ] PROV-229: Parse the complete shader-script grammar and preserve unknown directives.
- [ ] PROV-230: Recover shader lookup, duplicate definitions and missing-shader fallback behavior.
- [ ] PROV-231: Recover stage ordering, texture animation and blend functions.
- [ ] PROV-232: Recover alpha tests, depth writes/tests, culling and sorting.
- [ ] PROV-233: Recover tcGen, tcMod, rgbGen and alphaGen behavior.
- [ ] PROV-234: Recover vertex deformation, billboards, autosprites and wave functions.
- [ ] PROV-235: Recover sky, fog, portals, mirrors and environment mapping.
- [ ] PROV-236: Recover surface parameters that affect collision, footsteps, damage or gameplay.
- [ ] PROV-237: Recover lightmap, vertex lighting, dynamic light and fullbright interactions.
- [ ] PROV-238: Define a source-shader-to-runtime-material mapping with supported, approximated and unresolved fields.
- [ ] PROV-239: Document how multipass or nonphysical effects interact with Solari lighting.
- [ ] PROV-240: Convert font atlases and recover glyph metrics, kerning and text placement.
- [ ] PROV-241: Convert UI textures with reference pixel alignment and scaling checks.
- [ ] PROV-242: Build representative material scenes and compare all distinct shader feature combinations.
- [ ] PROV-243: Keep every original shader and texture variant traceable through the converted bundle.
- [ ] PROV-244: Generate a material compatibility report rather than silently dropping unsupported stages.
### Models, animation, maps and sound assets
Format names and variants must be confirmed from inventory signatures rather than presumed from extensions.
- [ ] PROV-245: Implement parsers for every discovered model format and version.
- [ ] PROV-246: Recover model coordinate systems, units, bounds and orientation.
- [ ] PROV-247: Recover surfaces, vertices, indices, normals, UVs and per-surface materials.
- [ ] PROV-248: Recover frame animation, skeletons, weights and compression where present.
- [ ] PROV-249: Recover tags, attachment transforms and weapon/character assembly.
- [ ] PROV-250: Recover animation configuration, frame ranges, looping and transition timing.
- [ ] PROV-251: Recover skins, body parts, team variants and customization references.
- [ ] PROV-252: Validate animation interpolation, bounds and normal reconstruction against reference output.
- [ ] PROV-253: Convert models into versioned runtime formats with preserved provenance.
- [ ] PROV-254: Implement parsers for every discovered BSP version and lump.
- [ ] PROV-255: Recover brush planes, solids, collision contents and trace rules.
- [ ] PROV-256: Recover world surfaces, triangle soups, patches and tessellation rules.
- [ ] PROV-257: Recover inline models, mover origins and transform conventions.
- [ ] PROV-258: Recover BSP tree, leaves, visibility clusters and area connectivity.
- [ ] PROV-259: Recover lightmaps, light grids, vertex colors and lighting metadata.
- [ ] PROV-260: Recover entity lumps and references to external assets.
- [ ] PROV-261: Recover sky, fog volumes, portals and map-specific rendering data.
- [ ] PROV-262: Investigate navigation files and bot authoring data separately from render geometry.
- [ ] PROV-263: Convert map visual, collision, visibility, entity and navigation products independently.
- [ ] PROV-264: Validate every mapβs extents, scale, spawn positions and world orientation.
- [ ] PROV-265: Decode every audio format and preserve source variant identities.
- [ ] PROV-266: Recover sample rates, channels, loop points and codec metadata.
- [ ] PROV-267: Convert runtime audio with documented resampling and loudness decisions.
- [ ] PROV-268: Inventory music, voice, radio, ambient and effects categories and dependencies.
- [ ] PROV-269: Inspect auxiliary text, scripts, configs, thumbnails, icons and authoring files.
- [ ] PROV-270: Produce a final disposition and conversion result for every nonruntime auxiliary asset.
### Bevy and Solari feasibility and renderer
The target remains Rust + Bevy + Solari on macOS and Linux. Support is a research gate, not an assumed property of an unverified version or GPU.
- [ ] PROV-271: Verify current Bevy, Solari and wgpu requirements using pinned official sources before choosing versions.
- [ ] PROV-272: Build a minimal Solari executable on macOS and Linux using the intended toolchain.
- [ ] PROV-273: Measure required GPU features and limits on the intended macOS and Linux hardware.
- [ ] PROV-274: Record a support matrix for CPU architecture, GPU, driver, backend and operating system.
- [ ] PROV-275: Determine whether all target platforms can meet the Solari requirements; document blockers and a concrete decision gate.
- [ ] PROV-276: Define explicitly any approved renderer alternatives or target changes if feasibility fails; do not silently substitute them.
- [ ] PROV-277: Choose pinned dependency versions only after the feasibility experiment.
- [ ] PROV-278: Import a small real map section and one real animated model into the renderer.
- [ ] PROV-279: Validate geometry eligibility, material restrictions and acceleration structure behavior.
- [ ] PROV-280: Recover original renderer conventions for handedness, depth, projection and camera transforms.
- [ ] PROV-281: Define world chunking, mesh preparation and scene registration for Solari.
- [ ] PROV-282: Investigate animated meshes, dynamic movers, particles and geometry update costs.
- [ ] PROV-283: Map legacy lightmaps, emissive surfaces, dynamic lights and environment lighting into the chosen lighting model.
- [ ] PROV-284: Define treatment of transparency, alpha cutouts, fog, sky and special shader effects.
- [ ] PROV-285: Define viewmodel rendering, first-person depth and HUD compositing.
- [ ] PROV-286: Define shadow behavior and moving-object lighting requirements.
- [ ] PROV-287: Measure temporal history, disocclusion, motion and camera-cut artifacts.
- [ ] PROV-288: Test quality and noise under fast movement and gameplay-critical visibility.
- [ ] PROV-289: Define resolution scaling, anti-aliasing, post-processing and display color behavior.
- [ ] PROV-290: Measure frame pacing, pipeline compilation, loading stalls and memory use.
- [ ] PROV-291: Define GPU diagnostics, capability errors and device-loss recovery.
- [ ] PROV-292: Compare original and rewritten rendering with documented intentional differences.
- [ ] PROV-293: Establish acceptable visual and latency budgets from measured hardware results.
- [ ] PROV-294: Document renderer-specific conversion requirements and unsupported cases per asset.
### Rust architecture and implementation
Implementation follows recovered specifications and fixtures; crate boundaries remain provisional until a vertical slice tests them.
- [ ] PROV-295: Design crate boundaries for shared simulation, protocol, content, client, server and tools.
- [ ] PROV-296: Define stable gameplay/content IDs independent of Bevy entity identifiers.
- [ ] PROV-297: Define typed simulation state, events, commands and schema versioning.
- [ ] PROV-298: Separate authoritative simulation, client prediction, interpolation and presentation.
- [ ] PROV-299: Implement deterministic fixed-step scheduling with the recovered ordering contract.
- [ ] PROV-300: Implement bounded numeric conversions, RNG and timestamp arithmetic.
- [ ] PROV-301: Implement collision queries and player movement against converted maps.
- [ ] PROV-302: Implement weapons, damage, inventory and player lifecycle from reference fixtures.
- [ ] PROV-303: Implement entity registry, triggers, movers and target chains.
- [ ] PROV-304: Implement each game mode with shared and mode-specific state machines.
- [ ] PROV-305: Implement bots and navigation after their behavior and assets are specified.
- [ ] PROV-306: Implement dedicated-server startup, configuration and headless scheduling.
- [ ] PROV-307: Implement protocol transport, serialization, queues and resource limits.
- [ ] PROV-308: Implement connection state machine, snapshots and reliable commands.
- [ ] PROV-309: Implement prediction, reconciliation and remote interpolation.
- [ ] PROV-310: Implement demos, recording, playback and protocol-version policy.
- [ ] PROV-311: Implement client states for startup, import, menu, connect, load, play and errors.
- [ ] PROV-312: Implement asynchronous asset loading with dependency progress and cancellation.
- [ ] PROV-313: Implement Bevy input, window management, audio and UI integration.
- [ ] PROV-314: Implement console, cvars, commands, bindings and persistence.
- [ ] PROV-315: Implement server browser, chat, radio, scoreboard and loadout UI.
- [ ] PROV-316: Implement authentication/service interfaces and offline behavior from explicit policy.
- [ ] PROV-317: Implement admin, votes, readiness, timeouts and match administration.
- [ ] PROV-318: Implement structured diagnostics and errors with recovered recovery boundaries.
- [ ] PROV-319: Implement resource cleanup across reconnect, map restart, unload and shutdown.
- [ ] PROV-320: Keep any QVM interpreter isolated as a research tool rather than release gameplay.
- [ ] PROV-321: Provide version/content negotiation and clear incompatible-bundle errors.
- [ ] PROV-322: Create a runnable vertical slice before committing to the complete architecture.
- [ ] PROV-323: Eliminate original executable, QVM and DLL runtime dependencies from the finished rewrite.
- [ ] PROV-324: Document public interfaces, invariants and subsystem maintenance procedures.
### Platform delivery, performance and operations
Platform completion includes installation and operation, not only compilation.
- [ ] PROV-325: Define supported macOS and Linux releases and CPU architectures from measured feasibility.
- [ ] PROV-326: Validate Rust toolchain, compiler flags and native dependency requirements.
- [ ] PROV-327: Build client and dedicated server for each declared target.
- [ ] PROV-328: Validate macOS app bundles, resources, permissions and distribution requirements.
- [ ] PROV-329: Validate Linux packaging, launch integration and runtime library requirements.
- [ ] PROV-330: Test clean installation, first import, content verification and first launch.
- [ ] PROV-331: Test configuration paths, Unicode paths, permissions and read-only installations.
- [ ] PROV-332: Test display scaling, fullscreen, multiple monitors and focus changes.
- [ ] PROV-333: Test audio devices, hotplug and platform input behavior.
- [ ] PROV-334: Test offline play, LAN hosting, remote connections and server shutdown.
- [ ] PROV-335: Define server deployment, logs, monitoring and restart procedures.
- [ ] PROV-336: Profile simulation, networking, loading, render submission and GPU work.
- [ ] PROV-337: Set measurable CPU, GPU, memory, disk and bandwidth budgets.
- [ ] PROV-338: Investigate content streaming and memory eviction where measurements require it.
- [ ] PROV-339: Test sustained sessions, repeated map rotations and resource leaks.
- [ ] PROV-340: Test low-resource conditions, disk-full errors and unavailable devices.
- [ ] PROV-341: Document crash diagnostics and reproducible bug-report bundles.
- [ ] PROV-342: Validate upgrades, schema changes, cache invalidation and rollback behavior.
### Conformance, regression and completion gates
A completed parser, rendered map or passing synthetic branch test is evidence for that slice only.
- [ ] PROV-343: Define per-subsystem acceptance criteria before checking implementation tasks complete.
- [ ] PROV-344: Create golden movement traces for all stances and movement interactions.
- [ ] PROV-345: Create golden combat traces for every weapon and damage interaction.
- [ ] PROV-346: Create golden entity and objective traces for all discovered classes.
- [ ] PROV-347: Create complete lifecycle traces for all game modes.
- [ ] PROV-348: Create network fixtures for loss, duplication, reordering, jitter and sequence wrap.
- [ ] PROV-349: Create protocol rejection and malformed-content regression fixtures.
- [ ] PROV-350: Create visual comparisons for every material feature and representative scene.
- [ ] PROV-351: Create per-map collision, visibility, spawn and objective validation suites.
- [ ] PROV-352: Create UI navigation and input-binding regression scenarios.
- [ ] PROV-353: Create audio event and spatialization comparison scenarios.
- [ ] PROV-354: Separate exact binary/protocol checks from tolerant physics, visual and audio comparisons.
- [ ] PROV-355: Run relevant fixtures on every declared macOS/Linux architecture and GPU tier.
- [ ] PROV-356: Verify client/server parity with mixed-platform sessions.
- [ ] PROV-357: Verify prediction under latency and correction without relying on local-only tests.
- [ ] PROV-358: Verify bots, spectators, downloads, demos and administration in complete sessions.
- [ ] PROV-359: Verify deterministic conversion and reproducible runtime bundles.
- [ ] PROV-360: Validate all original file/member dispositions and remaining unknown regions.
- [ ] PROV-361: Maintain a deviation register with justification, evidence and user-approved product decisions where needed.
- [ ] PROV-362: Define a first vertical-slice gate: imported map, movement, one weapon, local server and measured Solari rendering.
- [ ] PROV-363: Define a multiplayer gate: remote transport, prediction, combat and lifecycle across both platforms.
- [ ] PROV-364: Define an all-content gate: every supported mode and supplied playable map has recorded acceptance evidence.
- [ ] PROV-365: Define a release gate: native installation, complete provenance, required services, performance and recovery checks pass.
- [ ] PROV-366: Reject final completion while required unknown behaviors, unsupported assets or target-platform blockers remain.
### Repository, distribution and ongoing planning
Use the single Hugging Face repository for code and assets. Original installation objects remain only in the ignored cache.
- [ ] PROV-367: Audit attributes so code/docs remain normal Git and assets remain LFS/Xet pointers.
- [ ] PROV-368: Verify original hashes cannot enter ordinary Git blobs, asset pointers or pushed history.
- [ ] PROV-369: Verify extracted and converted assets are clearly separated from original installation files.
- [ ] PROV-370: Test the storage hooks on a clean clone with missing setup and malformed pointers.
- [ ] PROV-371: Verify asset upload and download integrity through the configured Hugging Face remote.
- [ ] PROV-372: Document recovery from interrupted uploads and unavailable remote storage.
- [ ] PROV-373: Keep bulk analysis artifacts in assets and compact evidence/index documents in normal Git.
- [ ] PROV-374: Record licensing and provenance for every dependency and content category.
- [ ] PROV-375: Determine redistribution rights and requirements before assembling public runtime bundles.
- [ ] PROV-376: Define code, asset and research artifact release versioning.
- [ ] PROV-377: Document build, import, conversion, research and gameplay reproduction commands.
- [ ] PROV-378: Maintain CI for relevant script checks, Rust validation and storage-policy enforcement.
- [ ] PROV-379: Provide contributor instructions for evidence claims and checklist completion.
- [ ] PROV-380: Convert selected PROV tasks into canonical RE/AP/RW/QA/MAP/FILE tasks without losing cross-links.
- [ ] PROV-381: Review the provisional backlog after each research batch and split tasks revealed to contain independent unknowns.
- [ ] PROV-382: Keep IDs stable; retire obsolete tasks with reasons and replacement links rather than renumbering.
- [ ] PROV-383: Record unresolved decisions on protocol compatibility, service replacement, visual fidelity and target hardware.
- [ ] PROV-384: Publish milestone evidence and an honest remaining-work summary with each meaningful release.
## Maintenance and next selection
This revision contains **384 provisional tasks**. Select a few bounded items at a time, prioritizing the first research batch and the renderer/platform feasibility experiments. Selection does not waive the remaining scope. Update findings only when new evidence exists; this document adds planning detail, not new reverse-engineering conclusions.
Before marking a broad subsystem complete, reconcile it with the canonical checklist, the per-file coverage registry, variant conversion reports, runtime fixtures and the deviation register. Keep unfinished and blocked work visible with the specific missing evidence or dependency.
Research progress: [BSP plane boundaries and bounded node traversal](research/BSP_PLANES.md) completes bounded RE-317β319. Broad geometry/runtime/port milestones remain open; see RE-320 for full traversal and loading work.
Research progress: [native BSP payload loading](research/BSP_LOADING.md) completes bounded RE-321β323. Complete asset conversion and geometry milestones remain open; RE-324 tracks actual variant audits, validation, reference ownership and runtime fixtures.
Research progress: [leaf references and area portal state](research/BSP_REFERENCES.md) completes bounded RE-325β327. Broad geometry/networking/runtime milestones remain open; RE-328 tracks complete flooding, reference ownership and snapshot consumers.
Research progress: [area flooding and bit output](research/AREA_FLOODING.md) completes bounded RE-329β331. Broad runtime/networking milestones remain open; RE-332 tracks real-map labels, lifecycle and snapshot consumers.
Research progress: [snapshot area-mask lifecycle](research/SNAPSHOT_AREAS.md) completes bounded RE-333β335. Full networking/renderer/runtime milestones remain open; RE-336 tracks real viewpoint selection, codecs, client parsing and mask consumers.
Research progress: [client area-mask parsing](research/CLIENT_MASKS.md) completes bounded RE-337β339. Broad protocol/renderer/runtime milestones remain open; RE-340 tracks actual codec/cursors, validation/publication and real packet/platform coverage.
Research progress: [message read modes and assembly](research/MESSAGE_BITS.md) completes bounded RE-341β343. Broad networking/runtime milestones remain open; RE-344 tracks real Huffman codecs, caller invariants and packet/platform fixtures.
Research progress: [Huffman helper probes](research/HUFFMAN_HELPERS.md) completes bounded RE-345β347. Broad protocol/runtime milestones remain open; RE-348 tracks full send, initialized trees/codebooks, actual packet round trips and platform coverage.
Research progress: [bounded Huffman encoding](research/HUFFMAN_ENCODING.md) completes RE-349β351. Broad network/runtime milestones remain open; RE-352 tracks adaptive initialization/codebooks, real message packets and platform fixtures.
Research progress: [Huffman initialization](research/HUFFMAN_INITIALIZATION.md) completes bounded RE-353β355. Broad network/runtime milestones remain open; RE-356 tracks adaptive updates, initialized codewords and actual message/packet/platform fixtures.
Research progress: [adaptive Huffman updates](research/HUFFMAN_UPDATES.md) completes bounded RE-357β359. Broad network/runtime milestones remain open; RE-360 tracks complete swap/tie paths, second-object equivalence, actual trained codebooks and real packet/platform fixtures.
Research progress: [differential Huffman codebook](research/HUFFMAN_CODEBOOK.md) completes bounded RE-361β363. Broad network/runtime milestones remain open; RE-364 tracks full native-training/codeword conformance and complete real packet/platform contracts.
Research progress: [message byte codec](research/MESSAGE_BYTE_CODEC.md) completes bounded RE-365β367. Broad network/runtime milestones remain open; RE-368 tracks general message/snapshot codecs, overflow/truncation/padding and real native packet/platform validation.
Research progress: [message width codecs](research/MESSAGE_WIDTHS.md) completes bounded RE-369β371. Broad network/runtime milestones remain open; RE-372 tracks wrappers/delta/snapshot codecs, message lifecycle and actual packet/platform validation.
Research progress: [message wrappers](research/MESSAGE_WRAPPERS.md) completes bounded RE-373β375. RE-376 leaves ReadData/compressed/string/delta/snapshot compositions, sentinel/lifecycle/alias and actual packet/platform validation open.
Research progress: [message strings and data reads](research/MESSAGE_STRINGS.md) completes bounded RE-377β379. RE-380 leaves compressed/library/caller-lifetime/alias/lifecycle and higher-level packet/platform contracts open.
Research progress: [numeric message codecs](research/MESSAGE_NUMERIC.md) completes bounded RE-381β383. RE-384 leaves delta/snapshot/angle callers and complete compressed/numeric-control/runtime/platform contracts open.
Research progress: [scalar message deltas](research/MESSAGE_DELTA.md) completes bounded RE-385β387. RE-388 leaves keyed/usercmd/entity/player/snapshot and complete caller/overflow/EOF/floating/runtime/platform contracts open.
Research progress: [keyed message deltas](research/MESSAGE_DELTA_KEY.md) completes bounded RE-389β391. RE-392 leaves keyed caller/narrowing/index reachability, higher-level codecs and actual runtime/packet/platform contracts open.
Research progress: [keyed usercmd codecs](research/MESSAGE_USERCMD.md) completes bounded RE-393β395 (time/key dispatch, record fields/narrowing and 204 modeled-tree streams). RE-392/396 retain legal callers, packet baselines/higher-level codecs and actual runtime/platform work; broad networking and rendering milestones remain open.
Research progress: [usercmd caller/hash/bundle evidence](research/USERCMD_CALLERS.md) completes bounded RE-397β399. RE-396/400 retain state producers, timestamp/VM acceptance, full bundle/netchan/runtime/platform and higher-level codecs; broad game/network/rendering milestones remain open.
Research progress: [server usercmd acceptance](research/USERCMD_ACCEPTANCE.md) completes bounded RE-401β403. RE-400/404 retain producers/time clamping/QVM effects/full packet/runtime/platform work; game/network/rendering milestones remain open.
Research progress: [native/QVM usercmd bridge](research/QVM_USERCMD.md) completes bounded RE-405β407. RE-404/408 retain producers/translation/VM effects/movement/full packet/runtime/platform contracts; broad game/network/rendering milestones remain open.
Research progress: [QVM think routes/inactivity/mode gates](research/QVM_THINK_GATES.md) completes bounded RE-409β411. RE-408/412 retain producers/action effects/movement/simulation/full-command/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM movement-frame setup](research/QVM_MOVEMENT_FRAME.md) completes bounded RE-413β415. RE-412/416 retain consumers/physics/callbacks/producers/full simulation/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM movement scheduler/output gates](research/QVM_MOVEMENT_LOOP.md) completes bounded RE-417β419. RE-416/420 retain actual child clock/physics/callbacks/event effects/full movement/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM child flags/clock/dispatch](research/QVM_STEP_STATE.md) completes bounded RE-421β423. RE-420/424 retain omitted child/callee/physics/native effects and complete gameplay/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM view/basis/position tails](research/QVM_VIEW_MOTION.md) completes bounded RE-425β427. RE-424/428 retain native trig/callees/full mode physics/composition/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM command scale/acceleration](research/QVM_ACCELERATION.md) completes bounded RE-429β431. RE-428/432 retain native sqrt/friction/producers/legal ranges/full mode/collision/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM friction policies](research/QVM_FRICTION.md) completes bounded RE-433β435. RE-432/436 retain live coefficients/producers/native sqrt/full mode-state/collision/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM content/ground producers](research/QVM_GROUND.md) completes bounded RE-437β439. RE-436/440 retain native callbacks/helper effects/full collision-state composition/live policy/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM posture bounds and transitions](research/QVM_POSTURE.md) completes bounded RE-441β443. RE-440/444 retain native collision/callee effects/resource and semantic producers/full state composition/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM animation helpers and contacts](research/QVM_ANIMATION_CONTACTS.md) completes bounded RE-445β447. RE-444/448 retain native collision/resource/semantic producers, live animation tables/contact consumers/full state/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM animation assets and tables](research/QVM_ANIMATION_TABLES.md) completes bounded RE-449β451: verified variants/symbols/model selectors, loader records/partial EOF and source-derived timed-helper bridges. RE-448/452 retain native preprocessing/live tables/playback/contact/full-state/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM resource update and consumers](research/QVM_RESOURCE.md) completes bounded RE-453β455: reset/drain/recovery/counter policy, selected caller arguments and resource/posture/scale bridges. RE-444/448/452/456 retain native effects/semantic producers/live animation/contact/full-state/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM timer aging and main routing](research/QVM_TIMERS_DISPATCH.md) completes bounded RE-457β459: countdown policy, main request/mode ordering and clock/posture/animation bridges. RE-456/460 retain actual helpers/producers/full environment-state composition/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM traversal-query recovery](research/QVM_TRAVERSAL_QUERY.md) completes bounded RE-461β463: direction/release, short hull transition policy and evaluated query-to-main outputs. RE-460/464 retain native collision/clearance/actions/producers/full state/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM side-hull and conditional gravity recovery](research/QVM_CLEARANCE_MODE.md) completes bounded RE-465β467:56335 geometry/acceptance, derived query/main Boolean chains and41768 tail/main handoffs. RE-464/468 retain actual collision/native effects/producers/full state/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM step/wrapper collision policy](research/QVM_STEP_COLLISION.md) completes bounded RE-469β471: raised/down/overlap traces and clipping, fallback/height stores, evaluated wrapper-to-gravity composition. RE-468/472 retain actual slide/native collision/producers/full state/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM slide preparation/first trace](research/QVM_SLIDE_PREFIX.md) completes bounded RE-473β475: gravity/planes, complete first exits and partial contact/touch policy, actual clear-slide caller chain. RE-472/476 retain multi-plane/repeated-bump/native collision/full state/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM slide plane gate/candidates](research/QVM_SLIDE_PLANES.md) completes bounded RE-477β479: capacity/dedup/nudge, first candidate/impact/both clips and real contact-prefix continuations. RE-476/480 retain secondary planes/crease/commit/repeated bumps/native collision/full state/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM secondary-plane solver](research/QVM_SLIDE_SOLVER.md) completes bounded RE-481β483: independent reclip/commit, original-vector crease projections/two supplied roots/third-plane return and40 contact continuations. Three chains complete an early slide return; normal paths remain partial before bump advance. RE-480/484 retain repeated bumps/native collision/full state/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM bump/common exit/second trace](research/QVM_SLIDE_LOOP.md) completes bounded RE-485β487: four-bump gate, end/saved vector precedence/flag/return policy and48 evaluated contact-to-second-request chains with complete supplied clear/allsolid exits. RE-484/488 retain repeated contact/native collision/full state/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM continuous repeated contacts](research/QVM_SLIDE_REPEATED.md) completes bounded RE-489β491: actual trace3/4, accumulated plane/time/end/touch/impact state and four-bump exhaustion versus early returns across76 probes. Native responses remain supplied. RE-488/492 retain native collision/full callers/legal state/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM contact slide caller composition](research/QVM_CONTACT_CALLERS.md) completes bounded RE-493β495: both actual slide children inside step/wrapper, down/overlap/fallback/height policy and actual mode-tail state across22 fixtures. Native responses remain supplied. RE-492/496 retain native collision/legal state/main/full runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM clock/main/contact composition](research/QVM_MAIN_CONTACT.md) completes bounded RE-497β499: actual clock/timer state, exact-expiry source routing and selected contact chain back to main requests across48 fixtures. Native responses/other main effects remain supplied or omitted. RE-496/500 retain missing producers/native collision/full main/scheduler/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM pre/post main environment](research/QVM_MAIN_ENVIRONMENT.md) completes bounded RE-501β503: actual content/ground producers, ground touches/derived routing, normal-to-motion and post-resampling state across48 fixtures. Native responses/other callee effects remain supplied or omitted. RE-500/504 retain posture/ground callees/native collision/action/other modes/full main/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM actual main posture](research/QVM_MAIN_POSTURE.md) completes bounded RE-505β507: live posture transitions/resource, evaluated animation-before-height/timer ordering and derived hull/viewheight consumers across28 fixtures. Native responses/remaining main effects stay supplied or omitted. RE-504/508 retain ground/native/input/resource/other modes/full main/runtime/platform work; broad game/rendering milestones remain open.
Research progress: [QVM ground loss and landing prefix](research/QVM_GROUND_CALLEES.md) completes bounded RE-509β511: actual ground-loss body/animation, landing discriminant/time/impact/timer prefix and16 main caller-order chains. Full landing/native/action effects remain open under RE-508/512; broad game/rendering/runtime/platform milestones remain open.
Research progress: [QVM landing severity/event queue/caller](research/QVM_LANDING.md) completes bounded RE-513β515: two-slot queue writers, full landing body and actual ground/main timer ordering. Numeric event/PS216 semantics and native/remaining main effects remain open under RE-512/516; broad game/rendering/runtime/platform milestones remain open.
Research progress: [QVM allsolid recovery](research/QVM_RECOVERY.md) completes bounded RE-517β519: ordered27-point search, original-origin retrace/record priority and16 ground/main continuations. Trace responses remain supplied; RE-516/520 retain native collision/legal/combined main/runtime/platform work and broad game/rendering milestones.
Research progress: [QVM combined posture/ground callees](research/QVM_COMBINED_GROUND.md) completes bounded RE-521β523: source-ordered shared posture/recovery/lost/landing/animation/touch state, temporal timers/hulls and reached movement/post environment across18 fixtures. RE-520/524 retain native/action/query/other modes/consumers/full runtime/platform work and broad game/rendering milestones.
Research progress: [QVM54981 forward traces/rebase/main routing](research/QVM_ACTION_PROBE.md) completes bounded RE-525β527: contact-bit geometry/retrace, recursive origin/landing and actual post-timer main producer across42 standalone/16 main cases. RE-524/528 retain nested ground-loss action/query/other modes/native/consumers/full runtime/platform work and broad game/rendering milestones.
Research progress: [QVM nested ground-loss action](research/QVM_LOST_ACTION.md) completes bounded RE-529β531: actual54981(1) before sentinel/flags, rebased deep-query priority and distinct later main54981(0) across48 standalone/12 main cases. RE-528/532 retain query/other modes/native/consumers/full runtime/platform work and broad game/rendering milestones.
Research progress: [QVM shared query/main acquisition event](research/QVM_MAIN_QUERY.md) completes bounded RE-533β535: actual side-clearance child, full query state into main and reached event23 queue across30 standalone/20 main cases. RE-532/536 retain other modes/combined producers/native/consumers/full runtime/platform work and broad game/rendering milestones.
Research progress: [QVM57312 active-state mode](research/QVM_ACTIVE_MODE.md) completes bounded RE-537β539: live friction/scale/acceleration, wish overwrite, stationary query and gravity-off slide across66 standalone/12 main cases. RE-536/540 retain combined producers/other modes/native/runtime work. The [progress assessment](PROGRESS.md) estimates5β10% overall and0% playable Rust runtime, with evidence and uncertainty.
Research progress: [QVM55465 flagged movement](research/QVM_FLAGGED_MODE.md) completes bounded RE-541β543: relevant entry impulse/byte writes, bit16 bypass, wish/cap/inline clip, measured post-slide resource and actual main branch across50 standalone/8 main cases. RE-540/544 retain other entry/movement bodies, combined/native/reference/full runtime/platform scope. No Rust runtime or assets change.
Research progress: [full40966 entry](research/QVM_JUMP_ENTRY.md) completes RE-545 with84 finite helper fixtures; native/caller/platform and content work remain open.
Research progress: [walking entry routing](research/QVM_WALK_ENTRY.md) completes RE-546 with24 prefix/4 main fixtures; full movement/native/platform work remains open.
Research progress: [ordinary air continuation](research/QVM_AIR_MODE.md) completes RE-547 with12 air/10 main fixtures. RE-548 retains wall/walking/other-mode/native/combined/full runtime and platform scope. No assets or Rust runtime change.
Research progress: RE-549 [report](research/QVM_MOVE_DIRECTION.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-550 [report](research/QVM_DIRECTION_CODEC.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-551 [report](research/QVM_WALL_PROBE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-552 [report](research/QVM_WALL_ACTION.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-553 [report](research/QVM_WATER_ENTRY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-554 [report](research/QVM_WATER_ROUTE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-555 [report](research/QVM_SWIM_MODE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-556 [report](research/QVM_WALK_WISH.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-557 [report](research/QVM_WALK_POLICY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-558 [report](research/QVM_WALKING_MODE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-560 [report](research/QVM_FREEFLIGHT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-561 [report](research/QVM_WATER_EVENTS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-562 [report](research/QVM_TORSO_SELECTOR.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-563 [report](research/QVM_RELOAD_REQUEST.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-564 [report](research/QVM_INTERACTION_REQUEST.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-565 [report](research/QVM_PACKED_CONTROLS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-566 [report](research/QVM_WEAPON_PREFIX.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-567 [report](research/QVM_LOCOMOTION_PREFIX.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-568 [report](research/QVM_LOCOMOTION.md); remaining native/content/runtime/platform scope stays open.
The [RE-560β569 consumer batch](research/QVM_CONSUMER_BATCH.md) closes bounded freeflight, water events, torso/reload/interaction controls and locomotion. The weapon body beyond50871 still prevents a complete main tick. Prioritize the ten concrete follow-ups listed there; full native/reference/content/platform gameplay scope remains open.
Research progress: RE-569 [report](research/QVM_MAIN_CONSUMERS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-571 [report](research/QVM_WEAPON_LOOKUP.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-572 [report](research/QVM_WEAPON_SELECT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-573 [report](research/QVM_WEAPON_COMPLETE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-574 [report](research/QVM_SPECIAL_QUERY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-575 [report](research/QVM_WEAPON_SELECTION_CALLER.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-576 [report](research/QVM_WEAPON_GUARDS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-577 [report](research/QVM_WEAPON_READY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-578 [report](research/QVM_RELOAD_COMPLETE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-579 [report](research/QVM_WEAPON_PHASES.md); remaining native/content/runtime/platform scope stays open.
The [RE-571β580 weapon batch](research/QVM_WEAPON_BATCH.md) closes bounded lookup, selection/completion, helper50525 and pre-firing return branches. Its next ten tasks prioritize51802+ firing/availability and complete main/reference validation. Rust/Bevy/Solari macOS/Linux runtime, native/content/rendering and whole-game scope remain open.
Research progress: RE-580 [report](research/QVM_WEAPON_RETURN_CHAINS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-582 [report](research/QVM_FIRE_GATE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-583 [report](research/QVM_FIRE_AVAILABILITY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-584 [report](research/QVM_FIRE_AMMO.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-585 [report](research/QVM_FIRE_POSE_PRIORITY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-586 [report](research/QVM_FIRE_POSE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-587 [report](research/QVM_FIRE_COUNTER.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-588 [report](research/QVM_FIRE_RESOURCE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-589 [report](research/QVM_FIRE_DELAY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-590 [report](research/QVM_WEAPON_COMPLETE_BODY.md); remaining native/content/runtime/platform scope stays open.
The [RE-582β591 firing batch](research/QVM_FIRING_BATCH.md) completes the bounded50746 QVM producer, six-consumer main suffix and timer/publication sequences. Prioritize its next ten tasks for event31 consumers, native/reference contracts, complete step/scheduler composition, asset identity and Rust/Bevy/Solari macOS/Linux runtime work.
Research progress: RE-591 [report](research/QVM_FIRE_SEQUENCES.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-593 [report](research/QVM_SERVER_EVENT_ROUTE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-594 [report](research/QVM_SERVER_FIRE_EVENT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-595 [report](research/QVM_SERVER_FIRE_BASIS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-596 [report](research/QVM_SERVER_MUZZLE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-597 [report](research/QVM_SERVER_FIRE_DISPATCH.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-598 [report](research/QVM_TEMP_EVENT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-599 [report](research/QVM_SERVER_SHOT_SETUP.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-600 [report](research/QVM_GRENADE_SETUP.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-601 [report](research/QVM_BASE_FIRE_GATE.md); remaining native/content/runtime/platform scope stays open.
The [RE-593β602 server firing batch](research/QVM_SERVER_FIRE_BATCH.md) recovers event31 routing, server basis/muzzle/dispatch and selected temp-event/grenade/base setup. Its next ten tasks prioritize293732/295018, real entity allocation/query/linking and projectile/damage callbacks. Original reference, asset mapping and full Rust/Bevy/Solari macOS/Linux/native/rendering/network scope remain open.
Research progress: RE-602 [report](research/QVM_SERVER_FIRE_CHAIN.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-604 [report](research/QVM_ENTITY_INIT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-605 [report](research/QVM_ENTITY_REUSE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-606 [report](research/QVM_ENTITY_ALLOCATE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-607 [report](research/QVM_ALLOCATED_EVENT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-608 [report](research/QVM_ALLOCATED_GRENADE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-609 [report](research/QVM_SPREAD_PARAMETERS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-610 [report](research/QVM_SPREAD_SPEED.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-611 [report](research/QVM_SPREAD_SAMPLING.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-612 [report](research/QVM_SHOT_FRAME.md); remaining native/content/runtime/platform scope stays open.
The [RE-604β613 allocation/spread batch](research/QVM_ALLOCATION_SPREAD_BATCH.md) recovers source allocation and its temp-event/grenade compositions, spread prefixes/sampling and shot frames. Follow its ten concrete next tasks for remaining aim, trace/contact/damage and lifecycle work. Original references and full Rust/Bevy/Solari macOS/Linux/native/content/network/rendering scope remain open.
Research progress: RE-613 [report](research/QVM_SHARED_SHOT_BASIS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-615 [report](research/QVM_AIM_TRIG.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-616 [report](research/QVM_AIM_EXTRA_OFFSETS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-617 [report](research/QVM_AIM_ENDPOINT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-618 [report](research/QVM_COMPLETE_AIM.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-619 [report](research/QVM_SHARED_SHOT_AIM.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-620 [report](research/QVM_SHOT_TRACE_REQUEST.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-621 [report](research/QVM_ROTATE_POINT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-622 [report](research/QVM_PELLET_ROTATION.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-623 [report](research/QVM_PELLET_ENDPOINT.md); remaining native/content/runtime/platform scope stays open.
The [RE-615β624 aim/trace batch](research/QVM_AIM_TRACE_BATCH.md) recovers complete bounded aim, trace preparation, point rotation and the event57 first-pellet trace boundary. Its next ten tasks prioritize trace results/rewind/restoration, contact/damage and full pellet aggregation. Original reference and the full Rust/Bevy/Solari macOS/Linux/native/content/network/rendering scope remain open.
Research progress: RE-624 [report](research/QVM_EVENT57_TRACE_CHAIN.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-626 [report](research/QVM_TRACE_CLASSIFY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-627 [report](research/QVM_TRACE_RETRY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-628 [report](research/QVM_TRACE_RELINK.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-629 [report](research/QVM_TRACE_BOUNDS_RESTORE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-630 [report](research/QVM_TRACE_FINALIZE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-631 [report](research/QVM_TRACE_RESPONSE_CHAIN.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-632 [report](research/QVM_REWIND_SNAPSHOT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-633 [report](research/QVM_REWIND_RESTORE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-634 [report](research/QVM_REWIND_SELECTORS.md); remaining native/content/runtime/platform scope stays open.
The [RE-626β635 trace/rewind batch](research/QVM_TRACE_REWIND_BATCH.md) recovers trace cleanup under supplied responses, snapshot/restore state, fixed player selectors and configured player_bb construction. Its next ten tasks prioritize history interpolation, model hits, contact/damage and full pellet aggregation. Original reference and full Rust/Bevy/Solari macOS/Linux/native/content/network/rendering scope remain open.
Research progress: RE-635 [report](research/QVM_PLAYER_BB_CONSTRUCT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-637 [report](research/QVM_REWIND_HISTORY_SELECT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-638 [report](research/QVM_HISTORY_VECTOR_LERP.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-639 [report](research/QVM_HISTORY_ANGLE_LERP.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-640 [report](research/QVM_REWIND_HISTORY_APPLY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-641 [report](research/QVM_COMPLETE_REWIND.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-642 [report](research/QVM_COMPLETE_REWIND_SELECTORS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-643 [report](research/QVM_REWOUND_TRACE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-644 [report](research/QVM_TWENTY_PELLETS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-645 [report](research/QVM_NO_TARGET_STATS.md); remaining native/content/runtime/platform scope stays open.
The [RE-637β646 history/pellet batch](research/QVM_HISTORY_PELLET_BATCH.md) recovers complete history rewind/restore and an allocated event57 twenty-pellet return path under supplied world responses. Current next tasks prioritize history production, model hits, contact/damage and nonzero-hit aggregation. Original reference and full Rust/Bevy/Solari macOS/Linux/native/content/network/rendering scope remain open.
Research progress: RE-646 [report](research/QVM_EVENT57_WORLD_RETURN.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-648 [report](research/QVM_HISTORY_RESET.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-649 [report](research/QVM_HISTORY_APPEND.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-650 [report](research/QVM_PRODUCED_HISTORY_REWIND.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-651 [report](research/QVM_VICTIM_STATS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-652 [report](research/QVM_MODEL_RAY_PREFIX.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-653 [report](research/QVM_POSE_PREFIX.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-654 [report](research/QVM_SWING_CONTROLLER.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-655 [report](research/QVM_HIT_PUBLICATION.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-656 [report](research/QVM_MODEL_TRANSFORMS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-657 [report](research/QVM_ENTITY_QUERY.md); remaining native/content/runtime/platform scope stays open.
RE-648β657 batch complete: [history production and model-hit preparation](research/QVM_HISTORY_HIT_BATCH.md). RE-658 tracks the next bounded research work; original/native parity and full Rust/Bevy/Solari gameplay remain open.
Research progress: RE-659 [report](research/QVM_HISTORY_CALLERS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-660 [report](research/QVM_POSE_CONTROLLERS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-661 [report](research/QVM_VECTOR_ANGLES.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-662 [report](research/QVM_POSE_MOTION_YAW.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-663 [report](research/QVM_POSE_LEAN.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-664 [report](research/QVM_POSE_PUBLICATION.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-665 [report](research/QVM_COMPLETE_POSE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-666 [report](research/QVM_ENTITY_FREE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-667 [report](research/QVM_QUERIED_GRENADE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-668 [report](research/QVM_MODEL_CHILD_SAMPLES.md); remaining native/content/runtime/platform scope stays open.
RE-659β668 batch complete: [complete finite pose and lifecycle composition](research/QVM_POSE_LIFECYCLE_BATCH.md). RE-669 tracks continued model/trace/lifecycle recovery; original/native parity and playable Rust/Bevy/Solari integration remain open.
Research progress: RE-670 [report](research/QVM_POSED_MODEL.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-671 [report](research/QVM_CHILD_ORIGIN.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-672 [report](research/QVM_CHILD_TRANSFORM.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-673 [report](research/QVM_MODEL_HIERARCHY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-674 [report](research/QVM_LEAF_BASIS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-675 [report](research/QVM_WORD_STRLEN.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-676 [report](research/QVM_STRING_RELEASE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-677 [report](research/QVM_FREE_REALLOCATE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-678 [report](research/QVM_BASIC_TRAJECTORY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-679 [report](research/QVM_GRENADE_EVENT_PREFIX.md); remaining native/content/runtime/platform scope stays open.
RE-670β679 batch complete: [model transforms, resources and grenade prelude](research/QVM_MODEL_RESOURCE_BATCH.md). RE-680 tracks continued geometry/trace/damage/lifecycle recovery; original/native parity and playable Rust/Bevy/Solari integration remain open.
Research progress: RE-681 [report](research/QVM_LEAF_VERTICES.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-682 [report](research/QVM_RAY_TRIANGLE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-683 [report](research/QVM_HIT_GEOMETRY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-684 [report](research/QVM_SURFACE_CATEGORY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-685 [report](research/QVM_LEAF_HIT_PUBLISH.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-686 [report](research/QVM_COMPLETE_LEAF.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-687 [report](research/QVM_GEOMETRIC_HIERARCHY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-688 [report](research/QVM_COMPLETE_MODEL_HIT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-689 [report](research/QVM_MODEL_MULTI_HITS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-690 [report](research/QVM_GEOMETRIC_REWOUND_TRACE.md); remaining native/content/runtime/platform scope stays open.
RE-681β690 batch complete: [source model geometry through rewound trace](research/QVM_GEOMETRY_TRACE_BATCH.md). RE-691 tracks original asset/reference validation and downstream contact/damage; playable Rust/Bevy/Solari integration remains open.
Research progress: RE-692 [report](research/MD3_CONTRACT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-693 [report](research/MD3_INVENTORY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-694 [report](research/MD3_BINDINGS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-695 [report](research/MD3_VM_BRIDGE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-696 [report](research/MD3_ORIGINAL_LEAF.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-697 [report](research/MD3_ORIGINAL_HIERARCHY.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-698 [report](research/MD3_ORIGINAL_MODEL_HIT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-699 [report](research/MD3_GEOMETRY_AUDIT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-700 [report](research/QVM_CONTACT_GATES.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-701 [report](research/RUST_MD3.md); remaining native/content/runtime/platform scope stays open.
RE-692β701 batch complete: [original models and Rust asset foundation](research/ORIGINAL_MODELS_RUST_BATCH.md). RE-702 tracks Bevy integration, native parity and downstream contact/damage; playable macOS/Linux Solari gameplay remains open.
Research progress: RE-703 [report](research/QVM_DAMAGE_PROTECTION.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-704 [report](research/QVM_DAMAGE_RANGE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-705 [report](research/QVM_DAMAGE_ATTENUATION.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-706 [report](research/QVM_DAMAGE_CLAMP.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-707 [report](research/QVM_DAMAGE_WOUNDS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-708 [report](research/QVM_DAMAGE_ATTRIBUTION.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-709 [report](research/QVM_DAMAGE_LOCATION_FLAGS.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-710 [report](research/QVM_DAMAGE_INTERRUPT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-711 [report](research/QVM_DAMAGE_COMPLETE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-712 [report](research/QVM_CONTACT_DISPATCH.md); remaining native/content/runtime/platform scope stays open.
RE-703β712 batch complete: [damage factor and contact dispatch](research/QVM_DAMAGE_FACTOR_BATCH.md). Complete289594 handles original-model contact factors and wound bookkeeping;211239 is still captured. RE-702 is partially advanced and RE-713 tracks contact/event/health composition, native parity and Rust/Bevy/Solari platform work. No playable-game milestone is claimed.
Research progress: RE-714 [report](research/QVM_CONTACT_FACTOR.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-715 [report](research/QVM_CONTACT_SPECIAL.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-716 [report](research/QVM_CONTACT_ANNOUNCEMENT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-717 [report](research/QVM_CONTACT_EVENT_HEADER.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-718 [report](research/QVM_CONTACT_EVENT_VALUE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-719 [report](research/QVM_CONTACT_FEEDBACK.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-720 [report](research/QVM_CONTACT_IMPACT.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-721 [report](research/QVM_CONTACT_COMPLETE.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-722 [report](research/QVM_HEALTH_GATES.md); remaining native/content/runtime/platform scope stays open.
Research progress: RE-723 [report](research/QVM_HEALTH_KNOCKBACK.md); remaining native/content/runtime/platform scope stays open.
RE-714β723 batch complete: [complete contact and health prefixes](research/QVM_CONTACT_HEALTH_BATCH.md). Complete292545 now uses original-model contexts through actual factor/event/feedback children;211239 entry gates and knockback selection are bounded recoveries. Full health mutations/callbacks, native parity and playable Rust/Bevy/Solari work remain open. RE-713 is partially advanced and RE-724 tracks the next work.
Research progress: RE-725 [report](research/QVM_HEALTH_ROUTING.md); full native/platform/game scope remains open.
Research progress: RE-726 [report](research/QVM_HEALTH_CREDIT.md); full native/platform/game scope remains open.
Research progress: RE-727 [report](research/QVM_HEALTH_SPECIAL_TARGET.md); full native/platform/game scope remains open.
Research progress: RE-728 [report](research/QVM_HEALTH_INTERCEPTS.md); full native/platform/game scope remains open.
Research progress: RE-729 [report](research/QVM_HEALTH_MUTATION.md); full native/platform/game scope remains open.
Research progress: RE-730 [report](research/QVM_HEALTH_TERMINAL.md); full native/platform/game scope remains open.
Research progress: RE-731 [report](research/QVM_HEALTH_IMPULSE.md); full native/platform/game scope remains open.
Research progress: RE-732 [report](research/QVM_HEALTH_COMPLETE.md); full native/platform/game scope remains open.
Research progress: RE-733 [report](research/QVM_CONTACT_HEALTH.md); full native/platform/game scope remains open.
Research progress: RE-734 [report](research/RUST_HEALTH_IMPULSE.md); full native/platform/game scope remains open.
RE-725β734 batch: [health, contact and Rust impulse findings](research/QVM_HEALTH_RUST_BATCH.md). Complete finite211239/213009 and original-context contact composition now execute with explicit unresolved callback/native boundaries. The Rust impulse primitive matches96 fixtures; full Bevy/Solari/platform gameplay remains open. RE-724 is partially advanced and RE-735 tracks subsequent work.
Research progress: RE-736 [report](research/QVM_PROTECTED_UPDATE.md); full native/platform/game scope remains open.
Research progress: RE-737 [report](research/QVM_MODE10_ENTRY.md); full native/platform/game scope remains open.
Research progress: RE-738 [report](research/QVM_MODE10_ANIMATION.md); full native/platform/game scope remains open.
Research progress: RE-739 [report](research/QVM_MODE10_OBITUARY.md); full native/platform/game scope remains open.
Research progress: RE-740 [report](research/QVM_MODE10_SCORING.md); full native/platform/game scope remains open.
Research progress: RE-741 [report](research/QVM_MODE10_COMPLETE.md); full native/platform/game scope remains open.
Research progress: RE-742 [report](research/QVM_HEALTH_MODE10.md); full native/platform/game scope remains open.
Research progress: RE-743 [report](research/RUST_PROTECTED_UPDATE.md); full native/platform/game scope remains open.
Research progress: RE-744 [report](research/RUST_MODE10_ENTRY.md); full native/platform/game scope remains open.
Research progress: RE-745 [report](research/RUST_MODE10_ANIMATION.md); full native/platform/game scope remains open.
RE-736β745 batch validation:1413 Python and56 Rust tests pass after ten separately checked task commits. Protected lifecycle and mode10 finite QVM contracts now have three additional pure Rust primitives. Full game completion is still gated by actual lifecycle child ownership, simulation/runtime integration, native parity, Linux and interactive Bevy/Solari validation.
Research progress: RE-747 [report](research/QVM_SCORE_UPDATE.md); full native/platform/game scope remains open.
Research progress: RE-748 [report](research/QVM_CLIENT_NOTIFICATIONS.md); full native/platform/game scope remains open.
Research progress: RE-749 [report](research/QVM_METHOD_STAT_SLOTS.md); full native/platform/game scope remains open.
Research progress: RE-750 [report](research/QVM_METHOD_STAT_UPDATES.md); full native/platform/game scope remains open.
Research progress: RE-751 [report](research/QVM_CROSS_CLIENT_CLEAR.md); full native/platform/game scope remains open.
Research progress: RE-752 [report](research/QVM_PROTECTED_RESOLVED.md); full native/platform/game scope remains open.
Research progress: RE-753 [report](research/QVM_MODE10_RESOLVED.md); full native/platform/game scope remains open.
Research progress: RE-754 [report](research/RUST_SCORE_UPDATE.md); full native/platform/game scope remains open.
Research progress: RE-755 [report](research/RUST_METHOD_STATS.md); full native/platform/game scope remains open.
Research progress: RE-756 [report](research/RUST_CROSS_CLIENT_CLEAR.md); full native/platform/game scope remains open.
RE-747β756 batch validation:1443 Python and68 Rust tests pass after ten separately checked task commits. Score updates, recipient loops, method statistics and cross-client clearing have additional finite QVM evidence; scoring, method counters and record clearing now have Rust primitives. Actual ranking/recipient/report children, full simulation/runtime ownership, native parity, Linux and interactive Bevy/Solari completion remain open.
Research progress: RE-758 [report](research/QVM_STAT_TOTALS.md); full native/platform/game scope remains open.
Research progress: RE-759 [report](research/QVM_STAT_RATIOS.md); full native/platform/game scope remains open.
Research progress: RE-760 [report](research/QVM_TEAM_COUNTERS.md); full native/platform/game scope remains open.
Research progress: RE-761 [report](research/QVM_RECENT_AWARDS.md); full native/platform/game scope remains open.
Research progress: RE-762 [report](research/QVM_RECIPIENT_SINGLE.md); full native/platform/game scope remains open.
Research progress: RE-763 [report](research/QVM_RECIPIENT_PAIR.md); full native/platform/game scope remains open.
Research progress: RE-764 [report](research/QVM_RANKING_SETUP.md); full native/platform/game scope remains open.
Research progress: RE-765 [report](research/RUST_STAT_TOTALS.md); full native/platform/game scope remains open.
Research progress: RE-766 [report](research/RUST_RECENT_AWARDS.md); full native/platform/game scope remains open.
Research progress: RE-767 [report](research/RUST_RECIPIENT_PAYLOAD.md); full native/platform/game scope remains open.
RE-758β767 batch validation:1473 Python and80 Rust tests pass after ten independently committed tasks. Totals/ratios, team counters, recent awards, recipient numeric bodies and ranking setup have finite source evidence; Rust adds totals/ratios, recent-award records and recipient numeric/cache contracts. Ranking sort/publication, real serialization, full runtime ownership, native parity, Linux and interactive Bevy/Solari acceptance remain open.
Research progress: RE-769 [report](research/QVM_RANK_COMPARATOR.md); full native/platform/game scope remains open.
Research progress: RE-770 [report](research/QVM_RANK_SMALL_SORT.md); full native/platform/game scope remains open.
Research progress: RE-771 [report](research/QVM_RANKING_COMPLETE.md); full native/platform/game scope remains open.
Research progress: RE-772 [report](research/QVM_LEADERBOARD_LAYOUT.md); full native/platform/game scope remains open.
Research progress: RE-773 [report](research/QVM_LEADERBOARD_SELECTOR.md); full native/platform/game scope remains open.
Research progress: RE-774 [report](research/QVM_LEADERBOARD_CATEGORIES.md); full native/platform/game scope remains open.
Research progress: RE-775 [report](research/QVM_RECIPIENT_WIRE.md); full native/platform/game scope remains open.
Research progress: RE-776 [report](research/RUST_RANKING.md); full native/platform/game scope remains open.
Research progress: RE-777 [report](research/RUST_LEADERBOARD.md); full native/platform/game scope remains open.
Research progress: RE-778 [report](research/RUST_RECIPIENT_WIRE.md); full native/platform/game scope remains open.
RE-769β778 batch validation:1504 Python and92 Rust tests pass after ten task commits;290 affected producers regenerate deterministically. Ranking, leaderboard selection and modeled recipient bytes have additional source/Rust evidence. Highest priority is the legacy repeated-call/dynamic-return tracer audit, then remaining native sort/publication/serialization, runtime ownership, Linux and interactive Bevy/Solari acceptance.
Research progress: RE-780 [report](research/QVM_RESUMER_AUDIT.md); full native/platform/game scope remains open.
Research progress: RE-781 [report](research/QVM_RETURN_PLACEMENT.md); full native/platform/game scope remains open.
Research progress: RE-782 [report](research/QVM_REENTRY_WITNESS.md); full native/platform/game scope remains open.
Research progress: RE-783 [report](research/QVM_EXECUTE_REENTRY.md); full native/platform/game scope remains open.
Research progress: RE-784 [report](research/QVM_NOTIFICATION_REENTRY.md); full native/platform/game scope remains open.
Research progress: RE-785 [report](research/QVM_AWARD_REENTRY.md); full native/platform/game scope remains open.
Research progress: RE-786 [report](research/QVM_COUNTER_REENTRY.md); full native/platform/game scope remains open.
Research progress: RE-787 [report](research/QVM_MOVEMENT_REENTRY.md); full native/platform/game scope remains open.
Research progress: RE-788 [report](research/QVM_RANK_PARTITION_HELPERS.md); full native/platform/game scope remains open.
Research progress: RE-789 [report](research/QVM_RANK_LARGE_SORT.md); full native/platform/game scope remains open.
RE-780β789 adds source-tracer audit witnesses, selected migrations and actual aligned sorting through64 clients. Full native/runtime/macOS/Linux/Bevy/Solari completion remains open; RE-790 tracks the next work. [Batch evidence](research/QVM_RESUMER_PARTITION_BATCH.md).
RE-780β789 batch validation: 1,537 Python and 92 Rust tests pass;216 affected report producers reproduce byte-identically. Selected tracer consumers and aligned source sorting now have stronger evidence. Remaining legacy consumers, complete runtime ownership, native parity and Linux/macOS Bevy/Solari acceptance remain open. [Evidence](research/QVM_RESUMER_PARTITION_BATCH.md).
RE-791: Both resumers can synchronize new and changed child words into byte lanes without erasing unchanged parent byte overlays. Full runtime completion remains open. [Evidence](research/QVM_CHILD_WORD_MEMORY.md).
RE-792: 5864 now composes actual35095 sorting and rank writes over80 larger eligible populations with explicit publication captures. Full runtime completion remains open. [Evidence](research/QVM_RANKING_LARGE_CALLER.md).
RE-793: Ranking count globals follow connection/team/bot gates, but deferred records can move active clients out of the positional prefix that receives rank words. Full runtime completion remains open. [Evidence](research/QVM_RANKING_POPULATION.md).
RE-794: Rust now executes the recovered insertion/partition/median/ninther sort without assuming comparator Ord; source parity includes unstable tie permutations. Full runtime completion remains open. [Evidence](research/RUST_RANK_SORT.md).
RE-795: Rust composes recovered source sorting and rank writes, matching exact order and tied/team rank words for128 full caller fixtures. Full runtime completion remains open. [Evidence](research/RUST_RANKING_COMPLETE.md).
RE-796: Rust reproduces source collection, first-playing identifiers and bot/team counters across185 setup and complete caller fixtures. Full runtime completion remains open. [Evidence](research/RUST_RANKING_POPULATION.md).
RE-797: Rust matches exact order, rank words and count globals for144 complete mixed/eligible caller fixtures, without reinterpreting asymmetric prefilters as Ord. Full runtime completion remains open. [Evidence](research/RUST_RANKING_MIXED.md).
RE-798: 278834 now optionally composes actual team counters and both ratio refreshes;64 fixtures verify counter aliases, totals, divisor and float32 publication together. Full runtime completion remains open. [Evidence](research/QVM_STAT_COMPOSITION.md).
RE-799: 6328 dispatches179363 to every state2 client in scan order, including spectators, and now executes inside48 complete ranking caller fixtures. Full runtime completion remains open. [Evidence](research/QVM_SCOREBOARD_BROADCAST.md).
RE-800: Rust reproduces all6328 recipient requests and exact rank-plan outputs across69 source fixtures, including connected spectators and both broadcast gates. Full runtime completion remains open. [Evidence](research/RUST_SCOREBOARD.md).
RE-791β800 completes additional bounded source/Rust ranking and dispatch contracts. Remaining legacy traces, native serialization, runtime integration and platform acceptance stay open. [Batch evidence](research/QVM_RUST_RANKING_PUBLICATION_BATCH.md).
RE-791β800 validation: 1,562 Python and102 Rust tests pass;226 affected producers reproduce byte-identically. Exact Rust sorting/ranking and source/Rust broadcast contracts advance the bounded rewrite. Native exit-rule/serialization effects, remaining tracing consumers, full runtime integration and Linux/macOS Bevy/Solari acceptance remain open. [Evidence](research/QVM_RUST_RANKING_PUBLICATION_BATCH.md).
RE-802: Bounded tracing can now preserve byte/word coherence and execute unaligned byte copies without changing legacy observations. Full runtime completion remains open. [Evidence](research/QVM_COHERENT_MEMORY.md).
RE-803: Both bounded resumers now support validated child byte writes, coherent word mirroring and explicit word/byte/return precedence. Full runtime completion remains open. [Evidence](research/QVM_CHILD_BYTE_EFFECTS.md).
RE-804: Actual strlen36038 and strcpy36185 execute against coherent bytes, preserving destination guards; bounded copy69338 retains an explicit native strncpy model. Full runtime completion remains open. [Evidence](research/QVM_STRING_MEMORY.md).
RE-805: 179363 differs from single-recipient payloads: raw class is preserved, only connecting state1 forces999 ping, and overflow candidates mutate cache before rejection. Full runtime completion remains open. [Evidence](research/QVM_SCOREBOARD_ROWS.md).
RE-806: 179363 now executes its real string and format wrappers, admission loop and rotating final buffer; exact byte output is checked under explicit formatter/native-copy models. Full runtime completion remains open. [Evidence](research/QVM_SCOREBOARD_WIRE.md).
RE-807: Rust reproduces every attempted source scoreboard row and cache update while preserving the differences from existing single/pair recipient projections. Full runtime completion remains open. [Evidence](research/RUST_SCOREBOARD_ROWS.md).
RE-808: Rust matches exact modeled scoreboard bytes, accepted/attempted counts, rejected-row cache mutations and output-ring wrap for18 source compositions. Full runtime completion remains open. [Evidence](research/RUST_SCOREBOARD_PACKET.md).
RE-809: 6328 now composes actual scoreboard bodies for successive recipients, preserving cache mutations, refreshed frame arguments and alternating output pointers. Full runtime completion remains open. [Evidence](research/QVM_SCOREBOARD_STREAM.md).
RE-810: Rust now matches successive source scoreboard packets with shared cache and ring state, rather than producing isolated per-recipient projections. Full runtime completion remains open. [Evidence](research/RUST_SCOREBOARD_STREAM.md).
RE-811: 278834 now composes actual recent-award scanning after actual team/ratio children in canonical actor/victim storage across64 mode/count/time/self fixtures. Full runtime completion remains open. [Evidence](research/QVM_STAT_AWARD_COMPOSITION.md).
RE-802β811 advances source/Rust scoreboard packet and shared-stat contracts. Native formatting/copy/send behavior, exit rules, full runtime ownership and platform acceptance remain open. [Batch evidence](research/QVM_SCOREBOARD_MEMORY_BATCH.md).
RE-802β811 validation: 1,587 Python and109 Rust tests pass;320 affected producers reproduce byte-identically. Opt-in coherent memory, source/Rust scoreboard packet streams and shared stat-award contracts advance the rewrite. Actual formatter/native copy/send parity, exit-rule behavior, full runtime integration and macOS/Linux Bevy/Solari acceptance remain open. [Evidence](research/QVM_SCOREBOARD_MEMORY_BATCH.md).
RE-813: 37768 truncates non-null strings by precision, always pads on the right, and ignores supplied precision for null strings by using its source fallback literal. Full runtime completion remains open. [Evidence](research/QVM_FORMAT_STRING.md).
RE-814: 37279 pads zeroes before a negative sign and renders wrapping INT_MIN remainder bytes noncanonically; narrow left-padding domains fail bounded execution. Full runtime completion remains open. [Evidence](research/QVM_FORMAT_INTEGER.md).
RE-815: 37914 now executes original dispatch tables and integer/string children; pointer conversion is decimal, unknown conversions consume one low-byte word, and source padding/minimum quirks propagate. Full runtime completion remains open. [Evidence](research/QVM_FORMATTER.md).
RE-816: Replacing the standard-decimal boundary with actual37914 exposes signed-minimum byte differences; prior modeled results remain explicitly separate. Full runtime completion remains open. [Evidence](research/QVM_SCOREBOARD_FORMATTER.md).
RE-817: Rust now matches actual37914 rather than host printf for decimal/string/character dispatch, including signed-minimum, null precision and padding quirks. Full runtime completion remains open. [Evidence](research/RUST_QVM_FORMAT.md).
RE-818: Rust scoreboard construction now uses recovered decimal/format semantics, replacing the earlier host-decimal assumption and matching actual source formatter packets. Full runtime completion remains open. [Evidence](research/RUST_SCOREBOARD_ORIGINAL.md).
RE-819: 70386 warns at count>=capacity, returns the clipped count and copies a guaranteed terminal NUL; embedded NUL separates reported count from visible string length. Full runtime completion remains open. [Evidence](research/QVM_FORMAT_WRAPPERS.md).
RE-820: Rust matches original clipping counts, visible bytes, warning thresholds and alternating buffer counters across56 wrapper cases. Full runtime completion remains open. [Evidence](research/RUST_FORMAT_WRAPPERS.md).
RE-821: 7805 first handles blocked state, then a pending1000/5000 transition using signed wrapped elapsed time; only a ready transition clears the pending global. Full runtime completion remains open. [Evidence](research/QVM_EXIT_PREFIX.md).
RE-822: Rust matches source7805 blocked/pending prefix behavior over144 cases, preserving pending time on blocked/wait paths and clearing only ready transitions. Full runtime completion remains open. [Evidence](research/RUST_EXIT_PREFIX.md).
RE-813β822 advances original formatter and Rust publication contracts, including explicit differences from the prior byte model. Native/JIT acceptance, transition effects and full runtime/platform work remain open. [Batch evidence](research/QVM_ORIGINAL_FORMATTER_BATCH.md).
RE-813β822 validation: 1,608 Python and117 Rust tests pass;34 affected producers reproduce byte-identically. Original formatter execution now replaces the scoreboard decimal assumption, and Rust matches its byte quirks. Native copy/send acceptance, complete exit rules and macOS/Linux Bevy/Solari runtime integration remain open. [Evidence](research/QVM_ORIGINAL_FORMATTER_BATCH.md).
RE-824: 37498 pads only the signed integer portion, ignores formatting flags and iteratively truncates fractional f32 digits without rounding; negative zero has no sign. Full runtime completion remains open. [Evidence](research/QVM_FORMAT_FLOAT.md).
RE-825: Rust now reproduces original37498 fractional truncation and integer-only width padding, including negative-zero and ignored flag behavior. Full runtime completion remains open. [Evidence](research/RUST_FORMAT_FLOAT.md).
RE-826: Mode11 exits on the first state2/team0 client whose signed class exceeds20, using the configured max-client count rather than the collected client count. Full runtime completion remains open. [Evidence](research/QVM_EXIT_CLASS.md).
RE-827: Rust reproduces the original first-offender mode11 guard and keeps the configured scan bound explicit and safe. Full runtime completion remains open. [Evidence](research/RUST_EXIT_CLASS.md).
RE-828: The exit suffix requires at least two playing clients, selects limits across the raw mode5 boundary, and checks first/second global scores before a low-mode client scan. Full runtime completion remains open. [Evidence](research/QVM_EXIT_LIMITS.md).
RE-829: Rust matches all125 source suffix decisions, including nonzero negative limits, playing-count gates and configured low-mode scans. Full runtime completion remains open. [Evidence](research/RUST_EXIT_LIMITS.md).
RE-830: The active round gate bypasses time-limit evaluation; expired mode9 time limits reset qualifying clients and populate supplied event records before exit requests. Full runtime completion remains open. [Evidence](research/QVM_EXIT_TIMERS.md).
RE-831: Rust matches116 original timer cases, including active-round bypass, signed multiply/clock wrap and exact mode9 client resets. Full runtime completion remains open. [Evidence](research/RUST_EXIT_TIMERS.md).
RE-832: Complete7805 execution now composes prefix, class, supplied predicate, round/time and limit policies with shared mutations across438 finite fixtures. Full runtime completion remains open. [Evidence](research/QVM_EXIT_COMPLETE.md).
RE-833: Rust now composes the full recovered7805 priority and matches438 continuous source cases, including pending clears and mode9 reset/event intentions. Full runtime completion remains open. [Evidence](research/RUST_EXIT_COMPLETE.md).
- [x] RE-834β843: Recover exit predicate and intermission child policies; remaining native/runtime scope is tracked under RE-844. [Batch evidence](research/QVM_INTERMISSION_BATCH.md).
RE-834: Actual 7662 and child 33715 execute across 168 cases. Playing count and the enabled global gate ties; team-classified modes compare global scores, mode9 uses ranked field308, mode11 field696, and other modes field248. Raw numeric names remain conservative; ranked pointer legality and native execution remain open. Full runtime completion remains open. [Evidence](research/QVM_EXIT_PREDICATE.md).
RE-835: Rust matches all 168 source cases with typed signed mode classification, global-score and ranked-field selection, early gate handling and safe rank rejection. A separate scoped intermission adapter avoids rebuilding unrelated lifecycle fixtures; original runtime remains open. Full runtime completion remains open. [Evidence](research/RUST_EXIT_PREDICATE.md).
RE-836: 131 original 7525 cases recover connected/entity-flag8 exclusion, nonzero readiness, first16-slot mask and independent counts. Signed wrapped timestamp additions gate a five-second minimum and ten-second wait; all-ready includes an empty eligible set. Actual 6939 next-map transition remains captured. Full runtime completion remains open. [Evidence](research/QVM_INTERMISSION_READY.md).
RE-837: Rust matches 131 original readiness cases, including slot16 mask exclusion, empty eligible sets, nonzero ready/wait flags, signed wrap and exact timeout boundaries. Safe scan rejection preserves state; next-map execution remains an explicit exit intention. Full runtime completion remains open. [Evidence](research/RUST_INTERMISSION_READY.md).
RE-838: 39 original 6825 cases recover the once-only blocked guard, clock assignment, optional slow setup, connected-client fallback ID, entity-client field4324 clear and ordered preparation/respawn/move/publication requests. Child effects remain captured; the zero clock case exposes the raw timestamp-as-guard behavior. Full runtime completion remains open. [Evidence](research/QVM_INTERMISSION_BEGIN.md).
RE-839: Rust matches 39 original begin-transition cases, preserving timestamp guard semantics, fallback IDs, entity-client field clear and preparation/slow/respawn/move/publication order. Native work stays typed effects; invalid counts reject before mutation. Full runtime completion remains open. [Evidence](research/RUST_INTERMISSION_BEGIN.md).
RE-840: 83 original 7367 cases recover Exit header, pending nowβ50, publication/configstring22 ordering, team score log, signed ping clamp and at most32 ranked connected nonspectator rows. Verified original format strings are recorded. Logging, publication and syscall effects remain captured. Full runtime completion remains open. [Evidence](research/QVM_EXIT_LOG.md).
RE-841: Rust matches 83 original exit-log cases with signed ping clamp, negative/zero/over32 rank counts, ranked filters, optional team score projection and wrapping pending timestamp. Rendering and ordered publication/configstring/log effects remain caller-owned; invalid ranks reject before mutation. Full runtime completion remains open. [Evidence](research/RUST_EXIT_LOG.md).
RE-842: 150 continuous 7805 fixtures now execute actual tie, readiness, begin-transition and exit-log children on shared world memory with separate child frames. Independent policy and nested ABI checks cover conflicting gates, client mutations and publication intentions. Lower-level next-map/respawn/camera/I/O and allocation still remain captured. Full runtime completion remains open. [Evidence](research/QVM_INTERMISSION_FLOW.md).
RE-843: Rust composes recovered tie, readiness, begin and exit-log policies with prior exit timers/limits across150 continuous source fixtures. Atomic staged updates preserve shared pending/client state; reset and lower-level world/I/O effects remain explicit intentions. Source branch labels are independently classified by the tested composition oracle; captured requests and actual final source state supply effect parity. Full runtime completion remains open. [Evidence](research/RUST_INTERMISSION_FLOW.md).
- [x] RE-844β853: Recover bounded camera, map-reset and event-construction policies; deeper native/runtime work continues under RE-854. [Batch evidence](research/QVM_CAMERA_MAP_EVENT_BATCH.md).
RE-844: 72 original 6575 fixtures recover entity/player origin and view-angle copies, velocity clear, movement type5 and cleared entity/client fields. Coherent byte copies preserve arbitrary float words, including NaN payloads; two entity-to-client targets prove indirection. Mode/field4324 gates converge without extra effects. Native renderer/camera integration remains open. Full runtime completion remains open. [Evidence](research/QVM_CAMERA_PLACE.md).
RE-845: Rust matches all 72 original camera fixtures, copying raw float words exactly and clearing the verified fields. The parity adapter resolves either entity-to-client target; the library accepts an already-resolved mutable client. Native camera/rendering and unrestricted pointer alias behavior remain open. Full runtime completion remains open. [Evidence](research/RUST_CAMERA_PLACE.md).
RE-846: 36 original 6717 cases recover fallback/selected view copies, optional target lookup and f32 target-minus-origin direction. Exact search/fallback/angle-conversion request ABI is checked. Search results and fallback writes are supplied; 62944 angle conversion and native selection/rendering remain open. Full runtime completion remains open. [Evidence](research/QVM_CAMERA_SELECT.md).
RE-847: Rust matches 36 original view-selection cases: supplied fallback/search results, copied angles and exact finite f32 direction subtraction, with typed ordered search/fallback/aim effects. Nonfinite arithmetic rejects; raw copies retain words. Angle conversion62944 and native selection remain open. Full runtime completion remains open. [Evidence](research/RUST_CAMERA_SELECT.md).
RE-848: 300 original 6939 cases recover the positive-phase/team-classified gate, option/flag2+4 restart priority, saved score order, flag clearing and configstring1005/2 requests. Normal reset stops at its boundary. Actual33715 executes; text formatting and downstream map/native effects remain supplied or captured. Full runtime completion remains open. [Evidence](research/QVM_NEXTMAP_SERIES.md).
RE-849: Rust matches 300 original series-branch cases, reusing the verified mode classifier and preserving restart priority, saved score order, raw flags and pending/blocked clearing. Formatting/configstring/map calls remain ordered intentions; the normal branch is left for its own policy. Full runtime completion remains open. [Evidence](research/RUST_NEXTMAP_SERIES.md).
RE-850: 48 original 6939 suffix cases recover round/blocked/global score clears, connected-client score resets, extra mode9 field304/308 resets, then connection2β1 after captured249007. A mid-call snapshot proves ordering; pending, phase, series flags and saved scores remain unchanged. Actual map/command children remain captured. Full runtime completion remains open. [Evidence](research/QVM_NEXTMAP_RESET.md).
RE-851: Rust matches 48 original normal-reset cases with separate pre-map score reset and post-map connection transition APIs. The adapter captures a no-op map child; production callers can apply its real mutations between stages. Safe count errors preserve state, and pending/phase/series data remain unchanged. Full runtime completion remains open. [Evidence](research/RUST_NEXTMAP_RESET.md).
RE-852: 144 original 277695/278138 cases recover tempEntity metadata, wrapped event kind+19, CVFI/CVIF origin snapping, trajectory/current-origin writes and link order. Five invalid float domains reject. Allocator flags424 and caller-owned84/140 are preserved; allocation277165 and native linking remain supplied/captured. Full runtime completion remains open. [Evidence](research/QVM_EVENT_CONSTRUCT.md).
RE-853: Rust matches 144 original temporary-event cases, including exact snap words, event-kind wrapping, metadata and preservation of allocator/caller fields. Five invalid source domains reject atomically in Rust. Allocation and native linking remain caller-owned; source class tokens require runtime metadata resolution. Full runtime completion remains open. [Evidence](research/RUST_EVENT_CONSTRUCT.md).
- [x] RE-854β863: Recover entity searches, target RNG, corrected angles and composed camera placement. Native/runtime integration continues under RE-864. [Evidence](research/QVM_CAMERA_WORLD_BATCH.md).
RE-854: 80 original 276433 cases recover nonzero active/class-pointer filtering, first match after cursor, scan limits and raw hash equality. Class text is never compared, so collisions return the first eligible hash match. Read-only world behavior is verified; unsafe pointers and native/runtime behavior remain open. Full runtime completion remains open. [Evidence](research/QVM_ENTITY_HASH.md).
RE-855: Rust matches 80 original class-hash search cases, including inactive/null class filtering, collisions, nonzero signed active values and cursors beyond the scan count. Bounded safe entity slices reject invalid cursors/counts; class text is intentionally not compared because the source does not compare it. Full runtime completion remains open. [Evidence](research/RUST_ENTITY_HASH.md).
RE-856: 150 original 276505 searches and 256 actual 69386 comparisons recover cursor/active/null-field filtering, ASCII folding, signed high-byte ordering, embedded NUL, nullable pointer order and zero-count behavior. Source calls the comparator with99999. Safe finite strings only; raw invalid pointers and runtime integration remain open. Full runtime completion remains open. [Evidence](research/QVM_ENTITY_FIELD.md).
RE-857: Rust matches 150 original field searches and 256 comparator cases, preserving nullable ordering, signed high bytes, ASCII folding, embedded NUL and count gates. The API receives resolved logical fields with bounded entity/string sizes; raw pointer/offset ABI remains outside this safe contract. Full runtime completion remains open. [Evidence](research/RUST_ENTITY_FIELD.md).
RE-858: 168 original 276586 cases compose actual 276505/69386 matching and actual36717 random state updates. At most32 matches are collected; random state advances exactly once only when matches exist, then selects by modulo. Five six-step RNG sequences and null/missing diagnostic paths are verified. Native initialization/world ownership remain open. Full runtime completion remains open. [Evidence](research/QVM_TARGET_PICK.md).
RE-859: Rust matches 168 original target selections and five six-step RNG sequences. It preserves first32-match collection, actual xorshift word transitions, single conditional draw, modulo selection and null/missing diagnostic intentions. Native initialization, message rendering and live world ownership remain open. Full runtime completion remains open. [Evidence](research/RUST_TARGET_PICK.md).
RE-860: 96 actual 62944 cases use corrected repeated child reentry and coherent full/partial alias memory, preserving staged f32 arithmetic and exact output words. All24 older fixtures are compared explicitly. atan2/sqrt remain supplied finite f32 math models; original native library bit parity is not established. Full runtime completion remains open. [Evidence](research/QVM_CAMERA_ANGLES.md).
RE-861: Rust matches 96 corrected source angle cases exactly through checked math transcripts. A separate host-math path is compared within four f32 ULPs, preserving source staging and signed-zero behavior. Safe nonfinite domains and stale math transcripts reject; original native atan2/sqrt bit parity remains unverified. Full runtime completion remains open. [Evidence](research/RUST_CAMERA_ANGLES.md).
RE-862: 96 continuous setupβplacement cases now execute class-hash, field/string, capped random target, RNG and angle bodies on shared coherent world state, including collision/fallback/missing/self/capped target and client-indirection cases. Only fallback168114 and finite math responses remain supplied. Runtime/respawn integration and native math parity remain open. Full runtime completion remains open. [Evidence](research/QVM_CAMERA_WORLD.md).
RE-863: Rust matches all96 composed source setup/placement fixtures across searches, actual RNG state transitions, checked angle-math transcripts and resolved player indirection. Fallible resolution stages RNG before committing it and performs placement only after success. Fallback selection and native math parity remain explicit boundaries; intermission/respawn/runtime integration is still open. Full runtime completion remains open. [Evidence](research/RUST_CAMERA_WORLD.md).
- [x] RE-864β873: Recover fallback spawn/camera and normal map command/reset contracts. Remaining native/runtime scope continues under RE-874. [Evidence](research/QVM_SPAWN_MAP_COMMAND_BATCH.md).
RE-864: 112 original168114 cases execute actual class-hash search and RNG, recovering stable farthest-first insertion,64-entry cap, far-half draw at8+, first-class fallback when blocked, +9 Z and a no-spawn fatal boundary. Telefrag answers and finite sqrt remain supplied; collision/native/runtime parity is open. Full runtime completion remains open. [Evidence](research/QVM_SPAWN_FALLBACK.md).
RE-865: Rust matches112 original fallback cases with checked distance-math responses, stable64-candidate cap, far-half random selection at8+, blocked first-class fallback and +9 Z. Safe no-spawn/domain errors preserve random state. Actual telefrag/collision tests, native math and runtime spawn ownership remain open. Full runtime completion remains open. [Evidence](research/RUST_SPAWN_FALLBACK.md).
RE-866: 128 coherent setupβplacement cases replace supplied fallback view writes with actual168114 selection, composing searches, capped distance ranking, RNG and angle execution. Existing intermission-camera paths and two player indirections are checked together. Telefrag answers and finite native math remain supplied; respawn/runtime integration is open. Full runtime completion remains open. [Evidence](research/QVM_CAMERA_SPAWN.md).
RE-867: Rust matches128 continuous source camera/fallback/placement cases with shared RNG state and checked native-math transcripts. The supplied fallback view has been replaced by recovered spawn ranking and +9 Z. Telefrag answers stay caller-owned; no-spawn errors preserve placement state. Native collision/math and runtime integration remain open. Full runtime completion remains open. [Evidence](research/RUST_CAMERA_SPAWN.md).
RE-868: 192 original122230 cases execute actual strlen and recover signed counter wrapping, threshold priority and refreshβoptional filename callback/clearβreset order. Engine-5 refresh writes are supplied explicitly, including empty, NUL and high-byte filenames. Actual122143/121987 callbacks and native runtime ownership remain open. Full runtime completion remains open. [Evidence](research/QVM_ROTATION_ADVANCE.md).
RE-869: Rust matches192 original rotation cases, preserving signed cursor wrap, enable/threshold gating, refreshed filename C-string handling and ordered refresh/write/clear/reset intentions. Engine refresh input is explicit; invalid refreshed data rejects before boundary mutations. Native callbacks remain unimplemented. Full runtime completion remains open. [Evidence](research/RUST_ROTATION_ADVANCE.md).
RE-870: 90 original7188 cases compose actual strlen, bounded-copy wrapper and original formatter. A nonempty override mirror records current engine mapname in g_nextCycleMap, copies the override into a128-byte local map-name buffer (127-byte payload), requests engine g_NextMap clear and emits mode2 map command. VM mirror bytes remain unchanged; engine/native-copy and lower effects remain supplied/captured. Full runtime completion remains open. [Evidence](research/QVM_MAP_SELECT.md).
RE-871: Rust matches90 original map-selection cases with empty/NUL mirror gates,127-byte engine-mapname truncation, raw non-UTF8 bytes, unchanged VM mirror and exact truncated-override mode2 map command text. The typed effect order matches source cvar/read/command requests. Engine callbacks, native copy and actual command dispatch remain outside the port. Full runtime completion remains open. [Evidence](research/RUST_MAP_SELECT.md).
RE-872: 192 actual6939 normal-path cases compose recovered rotation, map selection, mode classification, copy and formatter bodies on shared state. Optional supplied249007 connection changes prove the final scan sees child mutations. Cvar/engine bytes, native copy and lower callback/runtime effects remain explicit boundaries. Full runtime completion remains open. [Evidence](research/QVM_NORMAL_MAP_FLOW.md).
RE-873: Rust matches192 original normal6939 cases, staging rotation, override map-command intentions, global/client resets and post-callback connection changes atomically. The API refuses team-series inputs and invalid callback indices. VM mirrors/pending/series data remain source-faithful; native callbacks, engine refresh and runtime integration remain open. Full runtime completion remains open. [Evidence](research/RUST_NORMAL_MAP_FLOW.md).
- [ ] RE-874: Recover telefrag/native math, respawn/slow setup, lower map/rotation callbacks, allocation/publication and actual macOS/Linux runtime integration. [Scope](research/QVM_SPAWN_MAP_COMMAND_BATCH.md).
RE-874: 64 actual122143 cases recover a 64-slot bot population scan, wrapping (wins<<1)-loss converted to f32, strict positive best score and first-wins ties. Only the winner handle and unchanged filename pointer reach captured native -546. Zero/negative fitness means no write. Extreme counters exercise signed wrap and f32 precision. Native botlib serialization remains open. Full runtime completion remains open. [Evidence](research/QVM_BOT_BEST.md).
RE-875: Rust matches all64 original bot winner cases, with wrapping fitness arithmetic before f32 conversion, strict first-wins comparison and typed rejection of incomplete populations. Native botlib genome writes are returned as intentions, without assuming file serialization or runtime integration. Full runtime completion remains open. [Evidence](research/RUST_BOT_BEST.md).
RE-876: 64 actual121987 cases recover all64 native fitness words, supplied native -565 parent/child selection, ordered -566 interbreed and -567 mutation(handle,1.0), then zeroing both counters of currently active slots. A supplied selection callback activates slot63 to prove reset rereads live state after native calls. Selection algorithm and native genetic/file behavior remain open; invalid native indices are excluded. Full runtime completion remains open. [Evidence](research/QVM_BOT_BREED.md).
RE-877: Rust matches all64 actual121987 fitness/selection/interbreed/mutation/reset transcripts, including callback activation before the counter reset. API validates supplied indices before mutation and retains inactive counters. Native bot selection and genetic mutation are explicit answer/effect boundaries, not Rust implementations of botlib. Full runtime completion remains open. [Evidence](research/RUST_BOT_BREED.md).
RE-878: 72 actual249007 cases recover signed live client-count iteration and connected-state2 gating. Each accepted client calls246746 then246963 unconditionally; a supplied first-child disconnect does not suppress its second child, and activation of a later slot affects subsequent dispatch. This uses level count34992524, not max-clients cvar34089604. Child bodies, native effects and callback changes to count/base pointer remain open. Full runtime completion remains open. [Evidence](research/QVM_POST_MAP_CLIENTS.md).
RE-879: Rust matches all72 original249007 schedules and state snapshots, including disconnect-before-second-child and activation-before-later-scan cases. The bounded API accepts typed callbacks and validates the count before invoking them. Count/base remain stable; actual246746/246963 child bodies and engine integration remain open. Full runtime completion remains open. [Evidence](research/RUST_POST_MAP_CLIENTS.md).
RE-880: 32 actual167638 cases recover f32 origin-plus-six-source-bounds construction, native -33 box query with capacity1024 and returned-index iteration. Any entity with nonzero client pointer at offset520 blocks the spawn; other activity/health/team flags are not tested here. Covers duplicate indices, negative/zero query counts, signed/nonzero client words, f32 rounding and a client at result1024. Engine spatial query answers remain supplied; invalid engine counts/indices and nonfinite bounds are excluded. Full runtime completion remains open. [Evidence](research/QVM_SPAWN_OVERLAP.md).
RE-881: Rust matches all32 original167638 box/query/filter cases, including the full1024-result scan and f32 rounding. The API separates box construction from supplied engine indices, rejects nonfinite/overflow bounds and malformed positive counts/indices, and tests client-pointer nonzero alone. Actual collision broadphase and integration into fallback selection remain open. Full runtime completion remains open. [Evidence](research/RUST_SPAWN_OVERLAP.md).
RE-882: 96 actual122230 compositions execute actual122143/121987/36038 with shared population/cvar state. Engine refresh bytes and native genetic selection are supplied, while writes/interbreed/mutation are captured. Nonempty refreshed filename requests best-genome write before breeding; an empty filename still breeds and resets. Disabled/below-threshold paths preserve population. A supplied selection callback activates slot63 before reset. Native algorithm/file/engine/runtime parity remains open. Full runtime completion remains open. [Evidence](research/QVM_BOT_ROTATION.md).
RE-883: Rust matches all96 original122230/122143/121987 compositions, with staged counter/cvar changes and write-before-breed ordering. Winner selection uses pre-reset fitness; supplied activity changes affect reset only at the native selection boundary. Disabled/below-threshold paths preserve bot state. Invalid callback indices reject atomically. Native botlib algorithms, files and engine dispatch remain open. Full runtime completion remains open. [Evidence](research/RUST_BOT_ROTATION.md).
Next batch RE-884: integrate collision queries and recovered callbacks; recover their native/engine behavior and complete map/intermission/runtime ownership. See [remaining work](research/QVM_BOT_COLLISION_BATCH.md).
RE-884: 64 actual168114/167638 compositions replace supplied telefrag booleans with original query/filter execution. Native -33 spatial result lists are supplied, including empty/nonclient/blocked/mixed/duplicate results. Class filtering determines query order; accepted candidates then consume modeled sqrt before RNG, preserving64-cap and all-blocked/no-spawn behavior. Native broadphase, math and runtime ownership remain open. Full runtime completion remains open. [Evidence](research/QVM_QUERIED_SPAWN.md).
RE-885: Rust matches64 original168114/167638 compositions and their ordered box query transcripts. The typed spatial-query callback runs only after class filtering and before each candidate distance. Existing boolean-based callers retain behavior. Query/domain errors preserve RNG; native broadphase/math and external callback effects remain open. Full runtime completion remains open. [Evidence](research/RUST_QUERIED_SPAWN.md).
RE-886: 128 coherent6717/168114/167638/6575 cases execute box construction and client filtering inside camera fallback. Existing primary cameras issue no spatial queries; fallback class matches issue ordered native -33 requests. Result/view/player fields and checked math match the prior boolean-boundary fixtures. Native broadphase and math remain supplied; respawn and complete intermission/runtime remain open. Full runtime completion remains open. [Evidence](research/QVM_QUERIED_CAMERA.md).
RE-887: Rust matches128 original continuous camera/queried-fallback/placement cases, including exact query order and primary-camera bypass. Spatial callbacks use the same recovered box/filter policy as standalone fallback. Existing camera/spawn APIs retain their contracts; native broadphase/math and complete respawn/intermission remain open. Full runtime completion remains open. [Evidence](research/RUST_QUERIED_CAMERA.md).
RE-888: 60 actual246963 cases execute original70458/37914 integer formatting and70031/36038/69338 bounded concatenation. Five raw integers and four normalized booleans populate sessionN; sessIgnoreN follows entity client-pointer indirection, accepts flag exactly1, keeps duplicates, caps scan64 and truncates to127 bytes. Includes negative/oversized counts, two slots, INT_MIN formatter behavior and saturation. Native memset/strncpy are modeled and engine cvar writes captured; restore/engine persistence remain open. Full runtime completion remains open. [Evidence](research/QVM_SESSION_WRITE.md).
RE-889: Rust matches60 actual246963 byte-for-byte cvar fixtures, preserving recovered integer formatting, booleans, pointer-indirected duplicates,64-entry scan cap,127-byte saturation and original formatter-ring advance. Checked typed indices reject malformed inputs. Native cvar storage, session restore and runtime ownership remain open. Full runtime completion remains open. [Evidence](research/RUST_SESSION_WRITE.md).
RE-890: 64 continuous249007/246963 compositions execute session cvar serialization after the captured246746 child. Supplied first-child disconnection still allows persistence; later activation affects dispatch, and changed session fields are serialized immediately. Source formatter ring carries between clients. Native first-child behavior, engine cvars and count/base changes remain open. Full runtime completion remains open. [Evidence](research/QVM_POST_MAP_SESSION.md).
RE-891: Rust matches64 original249007/246963 compositions, including first-child disconnect/activation/field updates, exact cvar bytes and carried formatter-ring advance. Client changes stage atomically on typed callback errors. The first child and engine storage remain caller-owned; native effects and count/base mutation are outside this contract. Full runtime completion remains open. [Evidence](research/RUST_POST_MAP_SESSION.md).
RE-892: 64 actual6939 normal-path compositions execute122230/7188/249007/246963 and recovered formatter/string bodies on shared state. Distinct max-clients and level counts prove reset, persistence dispatch and final state2-to1 scan use their own bounds. First-child disconnect/activation/session-field effects are supplied and observed before persistence and final scan. Bot children, map-list fallback221662, first client child246746 and engine behavior remain explicit boundaries. Full runtime completion remains open. [Evidence](research/QVM_NORMAL_MAP_SESSION.md).
RE-893: Rust matches64 continuous original6939/249007/246963 compositions. Independent max-clients/live-level bounds preserve score-reset, session-write and final connection-scan ordering; supplied first-child field/connection changes are staged with global/cvar intentions. Invalid counts reject without partial state commits. Native first child, bot/map-list callbacks and engine persistence remain open. Full runtime completion remains open. [Evidence](research/RUST_NORMAL_MAP_SESSION.md).
RE-884β893 completed bounded queried spawn/camera and map persistence compositions. RE-894 tracks saved-position behavior, restore, native collision and full runtime integration. [Batch and remaining tasks](research/QVM_QUERIED_PERSISTENCE_BATCH.md).
RE-894: 96 actual70503 cases execute actual36038/69386, recovering optional leading separator, case-insensitive first-match keys, incomplete-pair rejection, empty values, embedded NUL and null-pointer early exits. Non-null calls XOR the two-buffer selector even on misses; null arguments preserve it. Oversized info fatal/aliasing/native userinfo retrieval remain open. Full runtime completion remains open. [Evidence](research/QVM_INFO_LOOKUP.md).
RE-895: Rust matches96 original70503 key/value and selector cases, preserving first-match case folding, incomplete-pair rejection, empty values, embedded NUL and null early exits. Oversized logical inputs reject without changing the selector. Native userinfo retrieval, raw pointer aliases and fatal semantics remain open. Full runtime completion remains open. [Evidence](research/RUST_INFO_LOOKUP.md).
RE-896: 72 actual38326/38355/37159/36779 cases recover comma-template numeric scanning with partial writes. Integer conversions accept leading digits only, including wrapping overflow; signs/leading spaces write0 without assignment. Floats use staged f32 accumulation, sign/whitespace and decimal scaling; lowercase e terminates the number. Literal mismatch returns-1 even after assignments. Empty/unparsed final fields still write0. Uppercase exponent, other scanf conversions and unsafe destinations remain open. Full runtime completion remains open. [Evidence](research/QVM_NUMERIC_SCAN.md).
RE-897: Rust matches72 actual38326/38355/37159/36779 cases, preserving digits-only integer entry, wrapping overflow, staged f32 decimal arithmetic, partial destination writes and literal-mismatch return-1. Caller supplies untouched destination words. Uppercase exponent, non-ASCII input and other scanf conversions reject; native ABI and complete scanner semantics remain open. Full runtime completion remains open. [Evidence](research/RUST_NUMERIC_SCAN.md).
RE-898: 96 actual246746 cases execute70503/69386/36038,70458/37914,70386 and float formatting. Mode9, enabled>=1, nonempty cl_guid and nonzero position gate file writes; angles alone do not. Mapname truncates63 bytes and GUID bytes pass into positions/map/GUID.pos without sanitization in this body. Open return is ignored; a nonzero supplied handle leads to exact float/name bytes, write then close. Engine buffers, native strncpy and file effects remain supplied/modeled/captured. Full runtime completion remains open. [Evidence](research/QVM_POSITION_SAVE.md).
RE-899: Rust matches96 original246746 cases with recovered userinfo, path construction and floating formatter bytes. Mode/enabled/position gates,63-byte map truncation, unsanitized GUID path bytes, ignored open return and write/close ordering are preserved. Typed unsupported format errors preserve the selector. Engine userinfo, native files and unsafe paths/ABI ownership remain open. Full runtime completion remains open. [Evidence](research/RUST_POSITION_SAVE.md).
RE-900: 96 actual246554 cases execute70503,70458/37914 and38326/38355/36779. A nonzero handle and signed length>0 with unsigned length<1023 permit reading. Exactly6 scanner assignments replace all position/angle words; malformed or truncated input preserves the original six words. Successful read paths close even after scan failure; zero/negative/oversized lengths return without a close in this body. Native file buffers/handles and real engine ownership remain supplied/captured. Full runtime completion remains open. [Evidence](research/QVM_POSITION_LOAD.md).
RE-901: Rust matches96 original246554 read cases, preserving mode/enabled/userinfo gating, strict1..1022 byte lengths, exact scan-result gating, all-six position updates and read/close order. Invalid-length exits retain the observed absence of close. Native file ownership and unsupported scanner domains remain open; this API returns intentions and supplied answers rather than performing file IO. Full runtime completion remains open. [Evidence](research/RUST_POSITION_LOAD.md).
RE-902: 144 actual247219 compositions execute original scanner, signed atoi, comma search, mode classifier and246554 load. Session scan result is ignored: partial fields and explicitly supplied caller-scratch words determine subsequent values; restored booleans use>0, with the final one also requiring team mode and flag1. Ignore tokens set in-range entries to1 without clearing old entries; invalid text maps to0. Actual saved-position load follows cvar restoration. Engine cvars/file bytes and initial scratch are supplied, not assumed initialized; native ownership and full reload integration remain open. Full runtime completion remains open. [Evidence](research/QVM_SESSION_RESTORE.md).
RE-903: Rust matches144 actual247219/scanner/atoi/mode/position-load compositions, preserving ignored parse result, explicit caller scratch, positive-only booleans and final team/flag gate. Ignore entries accumulate without clearing and invalid numeric text addresses slot0. State and selector stage atomically on unsupported domains. Native cvars/files, real scratch provenance and full map reload remain open. Full runtime completion remains open. [Evidence](research/RUST_SESSION_RESTORE.md).
RE-894β903 completed bounded userinfo/scanner/saved-file/session-restore source and Rust contracts. RE-904 tracks remaining numeric/scratch domains, real reload and native IO/runtime integration. [Batch and next work](research/QVM_SAVED_RESTORE_BATCH.md).
RE-904: 96 actual247520 compositions execute team classification, userinfo lookup, bounded copy, saved-position load and session serialization. Team/default/capacity policy, wrapping timeout arithmetic, native tick snapshot, byte-only versus word clears,36-byte text initialization and64 ignored-client clears are recovered. Existing position fields persist unless the recovered load succeeds. Diagnostic7259 and engine/file operations remain captured/supplied; caller authentication and post-initialization behavior remain open. Full runtime completion remains open. [Evidence](research/QVM_SESSION_INIT.md).
RE-905: Rust matches96 original247520 initialization/load/write cases, preserving raw byte/word clears, timeout wrapping, team/capacity selection,64 ignore clears and immediate session cvar bytes. Existing coordinates survive failed/suppressed loads. Engine clock/userinfo/files and diagnostic logging remain supplied/intended; caller behavior and native lifecycle remain open. Full runtime completion remains open. [Evidence](research/RUST_SESSION_INIT.md).
RE-906: 48 actual249007/246746/246963 compositions execute both post-map children on shared state. Ordered native file intentions precede each client session/ignore cvar pair; mode/enabled/zero-position/open-handle gates, pointer-indirected ignore lists and shared formatter/userinfo selectors are verified. Connected-state filtering remains original. Engine userinfo/files/cvars and native copy remain supplied/modeled/captured. Full runtime completion remains open. [Evidence](research/QVM_POST_MAP_FILES.md).
RE-907: Rust matches48 original249007 compositions with both actual saved-file and session-cvar children. Typed file/cvar actions preserve per-client order and shared selector/ring advances, and invalid domains preserve selector state. Native open answers remain supplied; no actual engine file/cvar dispatch or map reload is claimed. Full runtime completion remains open. [Evidence](research/RUST_POST_MAP_FILES.md).
RE-908: 64 actual6939 normal transitions compose122230/7188/249007/246746/246963. File actions and per-client session writes occur between score/global resets and the final connection2-to1 scan; reset maximum and level count vary independently. Engine-map bytes are coherent across map-command and saved-file paths. Bot children, map-list fallback221662, native IO and actual command dispatch remain supplied/captured boundaries. Full runtime completion remains open. [Evidence](research/QVM_NORMAL_MAP_FILES.md).
RE-909: Rust matches64 original normal transitions with actual saved-file and cvar child policies. Shared client counts, score/reset ordering, native file intentions, command bytes and formatter/selector carry are preserved. Existing standalone persistence uses the same action assembly. Native engine dispatch, bot internals and map-list parsing remain open. Full runtime completion remains open. [Evidence](research/RUST_NORMAL_MAP_FILES.md).
RE-910: 144 finite original246746/246963/247219/246554 compositions feed actual captured cvar/file bytes into a fresh destination snapshot. Negative and INT_MIN integer formatting is deliberately not assumed invertible; original partial scanner writes and supplied scratch are preserved. Ignore entries accumulate over the destination table, and six-float file prefixes survive appended names. The engine is a supplied in-memory transcript, not a native filesystem or real map reload. Full runtime completion remains open. [Evidence](research/QVM_PERSISTENCE_ROUNDTRIP.md).
RE-911: Rust matches144 original save/session-write/restore/read compositions using owned in-memory cvar/file bytes. Partial integer parsing and caller scratch preserve the observed non-invertibility of negative/INT_MIN session text; file prefixes and ignore accumulation remain exact. Engine/destination/selector changes stage atomically on errors. This adapter does not own native handles or perform OS file IO. Full runtime completion remains open. [Evidence](research/RUST_PERSISTENCE_ROUNDTRIP.md).
RE-912: 96 bounded173979 caller-path executions cover174081..174173 after userinfo/authentication: entity-client linking, actual6336-byte clear via modeled native memset, connecting-state/client-slot writes and the first-time OR new-session choice between actual247520 initialization and247219 restore. Both children execute recovered load/format/scanner policies. Uppercase team S below capacity is not the lowercase s shortcut. Authentication before the slice, post-branch normalization and native engine integration remain open. Full runtime completion remains open. [Evidence](research/QVM_CONNECT_SESSION.md).
RE-913: Rust matches96 bounded173979 caller paths, including client/entity initialization, first-time OR new-session dispatch, actual initialization/restore policies and saved-position loading. Client memory clear does not erase supplied caller scratch. Errors stage client/entity/selector changes. Authentication and later caller normalization, native IO and full client-connect acceptance remain open. Full runtime completion remains open. [Evidence](research/RUST_CONNECT_SESSION.md).
RE-904β913 completed bounded initialization, full persistence, in-memory round trips and connect clear/dispatch policies. RE-914 tracks full connect/native IO, remaining scanner/alias domains and real runtime integration. [Batch and next work](research/QVM_SESSION_LIFECYCLE_BATCH.md).
RE-914: 256 actual36306 cases recover the word-at-a-time comparison used by admission/password filtering. Result is the exact unsigned-byte difference at the first mismatch, with NUL termination, case sensitivity, high bytes and all four synthetic pointer alignments checked. Guard bytes are explicit fixture memory; native pointer validity and aliases remain open. Full runtime completion remains open. [Evidence](research/QVM_BYTE_COMPARE.md).
RE-915: Rust matches256 original36306 fixtures across alignment/case/NUL/high-byte domains, preserving the exact byte difference rather than only its sign. Typed logical strings reject oversized inputs. Raw word lookahead, invalid pointers and aliases remain outside the portable contract. Full runtime completion remains open. [Evidence](research/RUST_BYTE_COMPARE.md).
RE-916: 270 actual252643/36306 cases recover exact localhost bypass, byte-wrapping components, permissive single-byte separators, colon termination and little-endian mask matching. Short/empty inputs preserve explicit prior scratch bytes; nonzero filter mode rejects matches and zero mode rejects misses. Signed negative table count skips scanning. This is the observed policy, not strict IP validation; parser scratch provenance, table writers and native network acceptance remain open. Full runtime completion remains open. [Evidence](research/QVM_ADDRESS_FILTER.md).
RE-917: Rust matches270 original252643 parser/filter cases, retaining byte wrapping, permissive separators, colon/localhost rules, supplied scratch bytes, signed table-count behavior and mode inversion. Malformed positive counts reject. Table population, native network behavior and actual scratch provenance remain open. Full runtime completion remains open. [Evidence](research/RUST_ADDRESS_FILTER.md).
RE-918: 160 actual173979 prefix cases execute userinfo70503, address252643, unsigned36306 and case-folded69386. Native userinfo is fetched first; nonzero bot flag bypasses address/password checks. Banned rejection precedes password lookup. Empty server password or case-insensitive none disables the final case-sensitive check. Rejections occur before client clear; exact messages, lookup order and selector carry are verified. Filter scratch, engine userinfo/password and native admission remain explicit boundaries. Full runtime completion remains open. [Evidence](research/QVM_CONNECT_ADMISSION.md).
RE-919: Rust matches160 original173979 admission prefixes, preserving bot bypass, address-before-password rejection, none/empty server password behavior, exact case-sensitive password results, messages and userinfo selector order. Typed invalid domains preserve selector state. Native userinfo/filter population and complete caller acceptance remain open. Full runtime completion remains open. [Evidence](research/RUST_CONNECT_ADMISSION.md).
RE-920: 144 actual173979 suffix cases execute original mode classification and broadcast formatting with explicit bot/userinfo answers. Team normalization precedes bot flags/admission; failed bots return after those mutations. First-time paths clear selected ranges and overwrite timeout without the initializer60-second default. Updated userinfo/name precedes broadcast and a second team decision; ranking is requested last. Bot, userinfo, join, ranking, logs/network and native memset remain supplied/captured/modeled boundaries. Full runtime completion remains open. [Evidence](research/QVM_CONNECT_TAIL.md).
RE-921: Rust matches144 original173979 suffix cases with ordered bot admission, first-time clears, timeout wrapping, supplied userinfo changes, original broadcast bytes, team callback and ranking intentions. Bot rejection retains prior team/flag mutations. Native callbacks/logging/network/ranking and real caller acceptance remain open. Full runtime completion remains open. [Evidence](research/RUST_CONNECT_TAIL.md).
RE-922: 96 complete173979 executions compose actual userinfo/address/password admission, native client-clear boundary,247520 initialization or247219 restore, team normalization and bot/callback completion. Ordinary authentication rejection preserves client/entity state; bot rejection occurs after lifecycle side effects. Initializer-persisted timeout can precede a first-time overwrite. Client-wide checksums, watched bytes, exact messages, cvar order and selector/formatter carry are verified. Native admission/userinfo/team/ranking/IO/network callbacks remain supplied/captured; this is not native multiplayer acceptance. Full runtime completion remains open. [Evidence](research/QVM_CONNECT_COMPLETE.md).
RE-923: Rust matches96 complete173979 executions across admission, client clear, initialization/restore, bot admission and callback completion. Auth denial preserves client/entity state; bot denial retains lifecycle effects. Source messages, cvar timing, full-client checksums, raw watched bytes and selector/formatter carry match. Native callback bodies, actual network/IO acceptance and runtime integration remain open. Full runtime completion remains open. [Evidence](research/RUST_CONNECT_COMPLETE.md).
RE-914β923 completed bounded comparison/filter/admission/completion and whole173979 caller composition. RE-924 tracks concrete callback bodies, filter writers, native engine ownership and full runtime integration. [Batch and next work](research/QVM_CONNECT_POLICY_BATCH.md).
RE-924: 288 actual161744 cases execute original userinfo lookup, bounded copy and37144/36779 float conversion. The292-byte setup record contains144-byte characterfile, raw f32 skill and144-byte team fields; logical strings truncate143 bytes and pad with NUL. Three lookups alternate the userinfo buffer selector. Supplied125185 setup result is normalized to0/1; zero requests native client drop with exact text. Actual bot setup125185, engine userinfo/drop and native strncpy remain supplied/captured/modeled boundaries. Full runtime completion remains open. [Evidence](research/QVM_BOT_SETTINGS.md).
RE-925: Rust matches288 original161744 fixed-record and effect cases, preserving143-byte logical string caps, raw f32 skill, userinfo lookup order, restart forwarding and nonzero-result normalization. Typed unsupported skills preserve selector state. Actual125185 bot setup and engine userinfo/drop remain open. Full runtime completion remains open. [Evidence](research/RUST_BOT_SETTINGS.md).
RE-926: 162 actual182896 cases execute original70458/37914 integer/string formatting and capture broadcast-18. Teams0/1/2 emit ccprint payloads with code5 and team number; team3 emits spectator text only when the previous team differs from3. Other values do nothing. The body does not mutate team selection. Raw name bytes, exact quote/newline framing and wrapping formatter counter are verified; native network delivery and other team-switch callbacks remain open. Full runtime completion remains open. [Evidence](research/QVM_TEAM_ANNOUNCEMENT.md).
RE-927: Rust matches162 original182896 payload/counter cases, retaining exact ccprint/spectator framing, raw name bytes, previous-team suppression and wrapping formatter counter. It does not select or mutate teams. Native broadcast delivery and additional team-switch logic remain open. Full runtime completion remains open. [Evidence](research/RUST_TEAM_ANNOUNCEMENT.md).
RE-928: 144 original173979 suffix cases execute actual161744 settings/drop wrapper and182896 announcement body instead of supplied bot booleans and captured team callback. Parent control/state remains source-identical; extra userinfo selector toggles, setup records, drops, exact announcement bytes and formatter carry are verified. Native125185 setup,171668 userinfo mutation, ranking/network/logging remain supplied/captured. Full runtime completion remains open. [Evidence](research/QVM_RESOLVED_CONNECT_TAIL.md).
RE-929: Rust matches144 original suffix compositions with actual161744/182896 policies, retaining caller mutations/messages while adding precise bot records, drop requests, announcement bytes and selector/counter carry. The wrapper stages typed errors and preserves ordinary rejection mutations. Native bot setup/userinfo/ranking/network/logging remain open. Full runtime completion remains open. [Evidence](research/RUST_RESOLVED_CONNECT_TAIL.md).
RE-930: 96 complete173979 executions replace supplied161744 booleans and captured182896 with actual bot settings/drop and announcement bodies. Parent decisions, client/entity bytes and persistence timing are preserved; setup records, exact broadcasts and extra selector/formatter carry are verified. Native125185 setup,171668 mutation, ranking/logging/network/IO remain supplied/captured. Full runtime completion remains open. [Evidence](research/QVM_RESOLVED_CONNECT_COMPLETE.md).
RE-931: Rust matches96 complete source173979/161744/182896 compositions, including settings/drop records, extra selector toggles and announcement/counter carry while preserving prior caller state, cvar timing and return decisions. Typed errors stage all caller state. Native setup/userinfo/ranking/network/IO remain explicit boundaries. Full runtime completion remains open. [Evidence](research/RUST_RESOLVED_CONNECT_COMPLETE.md).
RE-932: 132 actual252829/252304/37159 cases recover first-hole reuse, append/count growth,4096 capacity, wildcard/numeric masks, modulo-byte values and permissive separators. Parsing failure still returns outer success1, marks comparison-1 and preserves other fields; count growth is not rolled back. Successful insert sets metadata-1. Optional252500 export is requested even after parse failure; full-capacity refusal skips it. Full-table scans execute with a bounded262144-instruction budget. Table/export/network provenance and malformed counts remain open. Full runtime completion remains open. [Evidence](research/QVM_FILTER_INSERT.md).
RE-933: Rust matches132 original252829/252304 table cases including4096-capacity scans, first-hole reuse, wildcard/numeric masks and comparison-1 sentinel behavior. Parser failure retains count growth and requests optional export, matching the source. Typed malformed counts/token-overflow domains reject atomically. Export body252500, live table writers and native network acceptance remain open. Full runtime completion remains open. [Evidence](research/RUST_FILTER_INSERT.md).
RE-924β933 completed bounded bot settings, announcement, connect-child composition and filter insertion contracts. The following batch recovers filter persistence; bot setup/userinfo, native resource/network acceptance and complete runtime integration remain open. [Batch and next work](research/QVM_BOT_ANNOUNCEMENT_FILTER_BATCH.md).
- [x] RE-934 Original filter export and native file-operation order ([evidence](research/QVM_FILTER_EXPORT.md)).
- [x] RE-935 Rust filter export policy and bounded storage ([evidence](research/RUST_FILTER_EXPORT.md)).
- [x] RE-936 Original exact-match filter removal ([evidence](research/QVM_FILTER_REMOVE.md)).
- [x] RE-937 Rust exact-match filter removal and diagnostics ([evidence](research/RUST_FILTER_REMOVE.md)).
- [x] RE-938 Original filter metadata update and save gating ([evidence](research/QVM_FILTER_METADATA.md)).
- [x] RE-939 Rust first-match filter metadata policy ([evidence](research/RUST_FILTER_METADATA.md)).
- [x] RE-940 Original insertion composed with recovered export ([evidence](research/QVM_FILTER_INSERT_EXPORT.md)).
- [x] RE-941 Rust insertion with recovered export composition ([evidence](research/RUST_FILTER_INSERT_EXPORT.md)).
- [x] RE-942 Original removal composed with export and survivor serialization ([evidence](research/QVM_FILTER_REMOVE_EXPORT.md)).
- [x] RE-943 Rust removal with survivor export and typed file effects ([evidence](research/RUST_FILTER_REMOVE_EXPORT.md)).
RE-934β943 completed bounded filter export/removal/metadata and insertion/removal persistence compositions. The following batch recovers time, expiry, loading and duration contracts; remaining command callers, live adapters and runtime integration remain open. [Batch and next work](research/QVM_FILTER_PERSISTENCE_BATCH.md).
- [x] RE-944 Original filter time flattening and asymmetric inverse ([evidence](research/QVM_FILTER_TIME.md)).
- [x] RE-945 Rust filter time arithmetic and asymmetric inverse ([evidence](research/RUST_FILTER_TIME.md)).
- [x] RE-946 Original full-table filter expiry and unsigned time gates ([evidence](research/QVM_FILTER_EXPIRY.md)).
- [x] RE-947 Rust full-table expiry with unsigned metadata gates ([evidence](research/RUST_FILTER_EXPIRY.md)).
- [x] RE-948 Original banlist loading and duplicate metadata routing ([evidence](research/QVM_FILTER_LOAD.md)).
- [x] RE-949 Rust bounded loading with explicit read replies ([evidence](research/RUST_FILTER_LOAD.md)).
- [x] RE-950 Original expiration-duration command and usage paths ([evidence](research/QVM_FILTER_DURATION.md)).
- [x] RE-951 Rust expiration command with typed time and usage effects ([evidence](research/RUST_FILTER_DURATION.md)).
- [x] RE-952 Original export reload and lossy persistence behavior ([evidence](research/QVM_FILTER_ROUNDTRIP.md)).
- [x] RE-953 Rust export reload composition and persistence-loss regressions ([evidence](research/RUST_FILTER_ROUNDTRIP.md)).
RE-944β953 completed bounded time/expiry/loading/duration and export/reload contracts. The following batch recovers command and caller-prefix compositions; complete callers, native ownership and runtime acceptance remain open. [Batch and next work](research/QVM_FILTER_LOADING_BATCH.md).
- [x] RE-954 Original add-filter client lookup and queued kick command ([evidence](research/QVM_FILTER_ADD_COMMAND.md)).
- [x] RE-955 Rust add-filter wrapper and unconditional queued kick ([evidence](research/RUST_FILTER_ADD_COMMAND.md)).
- [x] RE-956 Original remove-filter command and usage routing ([evidence](research/QVM_FILTER_REMOVE_COMMAND.md)).
- [x] RE-957 Rust remove-filter wrapper and source usage effects ([evidence](research/RUST_FILTER_REMOVE_COMMAND.md)).
- [x] RE-958 Original duration command with metadata and export resolved ([evidence](research/QVM_FILTER_DURATION_EXPORT.md)).
- [x] RE-959 Rust duration command with resolved persistence plan ([evidence](research/RUST_FILTER_DURATION_EXPORT.md)).
- [x] RE-960 Original expiry composed with full-capacity address admission ([evidence](research/QVM_FILTER_EXPIRY_ADMISSION.md)).
- [x] RE-961 Rust full-capacity expiry and address-admission composition ([evidence](research/RUST_FILTER_EXPIRY_ADMISSION.md)).
- [x] RE-962 Original client-frame prefix with unconditional expiry ([evidence](research/QVM_FILTER_FRAME_PREFIX.md)).
- [x] RE-963 Rust client-frame prefix with source motion gates and expiry ([evidence](research/RUST_FILTER_FRAME_PREFIX.md)).
RE-954β963 completed add/remove wrappers, resolved duration export, full-capacity expiry/admission and a bounded frame prefix. The following batch recovers the timer body and caller preparation; remaining callers/native ownership and runtime integration remain open. [Batch and next work](research/QVM_FILTER_COMMANDS_BATCH.md).
- [x] RE-964 Original client timer deadline and terminal-counter fragments ([evidence](research/QVM_CLIENT_TIMER_TERMINAL.md)).
- [x] RE-965 Rust client timer deadlines and terminal accumulation ([evidence](research/RUST_CLIENT_TIMER_TERMINAL.md)).
- [x] RE-966 Original100ms timer phase loop and damage-request ABI ([evidence](research/QVM_CLIENT_TIMER_TICKS.md)).
- [x] RE-967 Rust100ms phase loop and captured damage requests ([evidence](research/RUST_CLIENT_TIMER_TICKS.md)).
- [x] RE-968 Original float countdown and flag-recovery loop ([evidence](research/QVM_CLIENT_TIMER_RECOVERY.md)).
- [x] RE-969 Rust float countdown and ordered flag recovery ([evidence](research/RUST_CLIENT_TIMER_RECOVERY.md)).
- [x] RE-970 Complete original client timer body with expiry and ordered damage requests ([evidence](research/QVM_CLIENT_TIMER_COMPLETE.md)).
- [x] RE-971 Rust complete client timer with transactional persistent state ([evidence](research/RUST_CLIENT_TIMER_COMPLETE.md)).
- [x] RE-972 Original timer caller timing preparation and early gates ([evidence](research/QVM_CLIENT_TIMER_PREPARE.md)).
- [x] RE-973 Rust caller timestamp preparation and delta semantics ([evidence](research/RUST_CLIENT_TIMER_PREPARE.md)).
RE-964β973 completed timer deadline/phase/recovery contracts, whole-body composition and caller timing preparation. The following batch recovers pre-movement processing; remaining caller paths, damage feedback and native/runtime integration remain open. [Batch and next work](research/QVM_CLIENT_TIMER_BATCH.md).
- [x] RE-974 Original client intermission and spectator routing ([evidence](research/QVM_CLIENT_ROUTING.md)).
- [x] RE-975 Rust early client routing with captured callbacks ([evidence](research/RUST_CLIENT_ROUTING.md)).
- [x] RE-976 Original command angle preservation and movement-byte masking ([evidence](research/QVM_CLIENT_COMMAND_REWRITE.md)).
- [x] RE-977 Rust client command rewriting and byte preservation ([evidence](research/RUST_CLIENT_COMMAND_REWRITE.md)).
- [x] RE-978 Original inactivity policy and ordered warning timeout effects ([evidence](research/QVM_CLIENT_INACTIVITY.md)).
- [x] RE-979 Rust inactivity deadlines and typed timeout effects ([evidence](research/RUST_CLIENT_INACTIVITY.md)).
- [x] RE-980 Original movement parameter selection and packed words ([evidence](research/QVM_CLIENT_MOVEMENT_SETUP.md)).
- [x] RE-981 Rust finite movement parameters and one-shot controller handling ([evidence](research/RUST_CLIENT_MOVEMENT_SETUP.md)).
- [x] RE-982 Original pre-movement client pipeline and early-exit state ([evidence](research/QVM_CLIENT_PRE_MOVEMENT.md)).
- [x] RE-983 Rust composed pre-movement pipeline with source early-exit mutations ([evidence](research/RUST_CLIENT_PRE_MOVEMENT.md)).
RE-974β983 completed routing, command rewrite, inactivity, movement-parameter setup and composed prefix through154544. RE-984 tracks later callbacks/physics and native/runtime integration. [Batch and next work](research/QVM_CLIENT_PROCESSING_BATCH.md).
- [x] RE-984 Recover movement scratch initialization and mode dispatch ([evidence](research/QVM_CLIENT_MOVE_SCRATCH.md)).
- [x] RE-985 Port movement scratch initialization and callback plans ([evidence](research/RUST_CLIENT_MOVE_SCRATCH.md)).
- [x] RE-986 Recover movement suppression and command snapshot ([evidence](research/QVM_CLIENT_MOVE_SUPPRESSION.md)).
- [x] RE-987 Port signed movement suppression and snapshot ([evidence](research/RUST_CLIENT_MOVE_SUPPRESSION.md)).
- [x] RE-988 Recover movement masks and linked overlap cleanup ([evidence](research/QVM_CLIENT_MOVE_MASK.md)).
- [x] RE-989 Port linked overlap and movement mask selection ([evidence](research/RUST_CLIENT_MOVE_MASK.md)).
- [x] RE-990 Recover native movement context and vector snapshots ([evidence](research/QVM_CLIENT_MOVE_CONTEXT.md)).
- [x] RE-991 Port typed native movement context assembly ([evidence](research/RUST_CLIENT_MOVE_CONTEXT.md)).
- [x] RE-992 Compose source movement setup through physics boundary ([evidence](research/QVM_CLIENT_MOVE_ASSEMBLY.md)).
- [x] RE-993 Compose Rust movement setup with callback feedback ([evidence](research/RUST_CLIENT_MOVE_ASSEMBLY.md)).
- [x] RE-984β993 movement-context batch:280 paired source/Rust fixtures through154867 ([evidence](research/QVM_MOVE_CONTEXT_BATCH.md)).
- [ ] RE-994 recover actual mode callback bodies and movement54475, then post-movement/timer integration and native macOS/Linux acceptance ([scope](research/QVM_MOVE_CONTEXT_BATCH.md#next-work-re-994)).
- [x] RE-994 Recover meter completion and thaw event effects ([evidence](research/QVM_MOVE_METER.md)).
- [x] RE-995 Port meter completion and captured thaw effects ([evidence](research/RUST_MOVE_METER.md)).
- [x] RE-996 Recover timed mode10 self-recovery ([evidence](research/QVM_MOVE_SELF_RECOVERY.md)).
- [x] RE-997 Port timed self-recovery with atomic state updates ([evidence](research/RUST_MOVE_SELF_RECOVERY.md)).
- [x] RE-998 Recover mode10 assistance admission and cleanup scan ([evidence](research/QVM_MOVE_ASSIST_CLEANUP.md)).
- [x] RE-999 Port assistance cleanup and typed target ownership ([evidence](research/RUST_MOVE_ASSIST_CLEANUP.md)).
- [x] RE-1000 Recover mode8 eligibility and teammate exclusion ([evidence](research/QVM_MOVE_MODE8_ELIGIBILITY.md)).
- [x] RE-1001 Port mode8 eligibility and teammate exclusion ([evidence](research/RUST_MOVE_MODE8_ELIGIBILITY.md)).
- [x] RE-1002 Compose actual mode10 self callbacks with movement setup ([evidence](research/QVM_MOVE_RESOLVED_SELF.md)).
- [x] RE-1003 Compose actual Rust self callbacks with movement setup ([evidence](research/RUST_MOVE_RESOLVED_SELF.md)).
- [x] RE-994β1003 callback batch:244 paired source/Rust fixtures for meter completion, self-recovery, assistance cleanup, mode8 eligibility and resolved mode10 self setup ([evidence](research/QVM_MOVE_CALLBACK_BATCH.md)).
- [ ] RE-1004 recover nonempty assistance proximity search, mode8 objective transitions and nested native callback feedback ([scope](research/QVM_MOVE_CALLBACK_BATCH.md#next-work-re-1004)).
- [x] RE-1004 Recover assistance acquisition and target ownership ([evidence](research/QVM_ASSIST_ACQUIRE.md)).
- [x] RE-1005 Port assistance acquisition and ownership guard ([evidence](research/RUST_ASSIST_ACQUIRE.md)).
- [x] RE-1006 Recover far and unprotected assistance cancellation ([evidence](research/QVM_ASSIST_CANCEL.md)).
- [x] RE-1007 Port conditional assistance cancellation ([evidence](research/RUST_ASSIST_CANCEL.md)).
- [x] RE-1008 Recover assisted thaw progress and target completion ([evidence](research/QVM_ASSIST_PROGRESS.md)).
- [x] RE-1009 Port assisted progress with target meter feedback ([evidence](research/RUST_ASSIST_PROGRESS.md)).
- [x] RE-1010 Recover complete mode10 assistance callback ([evidence](research/QVM_ASSIST_COMPLETE.md)).
- [x] RE-1011 Port complete mode10 assistance scan ([evidence](research/RUST_ASSIST_COMPLETE.md)).
- [x] RE-1012 Recover assistance transitions across repeated calls ([evidence](research/QVM_ASSIST_SEQUENCE.md)).
- [x] RE-1013 Port bounded assistance replay and transition snapshots ([evidence](research/RUST_ASSIST_SEQUENCE.md)).
- [x] RE-1004β1013 assistance search/replay batch:212 paired scenarios, including100 repeated-call snapshots ([evidence](research/QVM_ASSISTANCE_BATCH.md)).
- [ ] RE-1014 recover mode8 objective transitions, actual nested effects and nonempty assistance/self/movement composition ([scope](research/QVM_ASSISTANCE_BATCH.md#next-work-re-1014)).
- [x] RE-1014 Recover bomb-defuse start and weapon state changes ([evidence](research/QVM_DEFUSE_BEGIN.md)).
- [x] RE-1015 Port bomb-defuse start and effect ordering ([evidence](research/RUST_DEFUSE_BEGIN.md)).
- [x] RE-1016 Recover bomb-defuse cancellation branches ([evidence](research/QVM_DEFUSE_CANCEL.md)).
- [x] RE-1017 Port conditional bomb-defuse cancellation ([evidence](research/RUST_DEFUSE_CANCEL.md)).
- [x] RE-1018 Recover timed bomb-defuse completion and effect order ([evidence](research/QVM_DEFUSE_FINISH.md)).
- [x] RE-1019 Port timed bomb-defuse completion and captured effects ([evidence](research/RUST_DEFUSE_FINISH.md)).
- [x] RE-1020 Recover complete mode8 bomb-defuse callback ([evidence](research/QVM_DEFUSE_COMPLETE.md)).
- [x] RE-1021 Port complete bomb-defuse lookup and state policy ([evidence](research/RUST_DEFUSE_COMPLETE.md)).
- [x] RE-1022 Recover bomb-defuse sequences and completion latching ([evidence](research/QVM_DEFUSE_SEQUENCE.md)).
- [x] RE-1023 Port bomb-defuse replay and fatal/completion boundaries ([evidence](research/RUST_DEFUSE_SEQUENCE.md)).
- [x] RE-1014β1023 bomb-defuse batch:278 paired scenarios, including138 repeated-call snapshots ([evidence](research/QVM_DEFUSE_BATCH.md)).
- [ ] RE-1024 recover objective/native effect feedback and compose defusing with full client preparation/movement/timer execution ([scope](research/QVM_DEFUSE_BATCH.md#next-work-re-1024)).
- [x] RE-1024 Correct native effect identities and recover objective counter ([evidence](research/QVM_EFFECT_COUNTER.md)).
- [x] RE-1025 Port indexed objective counters and label compatibility notes ([evidence](research/RUST_EFFECT_COUNTER.md)).
- [x] RE-1026 Recover team radio routing and marker state ([evidence](research/QVM_EFFECT_RADIO.md)).
- [x] RE-1027 Port team radio command planning and marker feedback ([evidence](research/RUST_EFFECT_RADIO.md)).
- [x] RE-1028 Resolve defuse completion score and objective counter ([evidence](research/QVM_EFFECT_DEFUSE_FINISH.md)).
- [x] RE-1029 Port resolved defuse score and counter feedback ([evidence](research/RUST_EFFECT_DEFUSE_FINISH.md)).
- [x] RE-1030 Resolve defuse start event construction and radio feedback ([evidence](research/QVM_EFFECT_DEFUSE_BEGIN.md)).
- [x] RE-1031 Port resolved defuse event and radio feedback ([evidence](research/RUST_EFFECT_DEFUSE_BEGIN.md)).
- [x] RE-1032 Resolve full defuse callback effect feedback ([evidence](research/QVM_EFFECT_DEFUSE_COMPLETE.md)).
- [x] RE-1033 Port full defuse policy with resolved effect bodies ([evidence](research/RUST_EFFECT_DEFUSE_COMPLETE.md)).
- [x] RE-1024β1033 resolved-feedback batch:174 paired scenarios with corrected score/counter/radio identities and actual QVM effect bodies ([evidence](research/QVM_EFFECT_FEEDBACK_BATCH.md)).
- [ ] RE-1034 connect remaining allocation/location/format/ranking/native feedback and migrate legacy labels ([scope](research/QVM_EFFECT_FEEDBACK_BATCH.md#next-work-re-1034)).
- [x] RE-1034 Recover cached trigger and nearest location selection ([evidence](research/QVM_LOCATION_NEAREST.md)).
- [x] RE-1035 Port cached trigger and nearest location policy ([evidence](research/RUST_LOCATION_NEAREST.md)).
- [x] RE-1036 Recover location text wrapper and bounded formatting ([evidence](research/QVM_LOCATION_TEXT.md)).
- [x] RE-1037 Port bounded location text and missing-result semantics ([evidence](research/RUST_LOCATION_TEXT.md)).
- [x] RE-1038 Resolve team radio location and source formatting chain ([evidence](research/QVM_LOCATION_RADIO.md)).
- [x] RE-1039 Port located team radio and formatter state ([evidence](research/RUST_LOCATION_RADIO.md)).
- [x] RE-1040 Recover objective-event allocator reuse and terminal boundaries ([evidence](research/QVM_LOCATION_ALLOCATION.md)).
- [x] RE-1041 Port fixed-pool allocation and terminal-state semantics ([evidence](research/RUST_LOCATION_ALLOCATION.md)).
- [x] RE-1042 Resolve defuse start through actual event allocation ([evidence](research/QVM_LOCATION_ALLOCATED_DEFUSE.md)).
- [x] RE-1043 Port allocated defuse start with preserved record state ([evidence](research/RUST_LOCATION_ALLOCATED_DEFUSE.md)).
- [x] RE-1034β1043 location/format/allocation batch:115 paired scenarios with actual location and formatter/radio chains plus allocated defuse events ([evidence](research/QVM_LOCATION_ALLOCATION_BATCH.md)).
- [ ] RE-1044 combine allocated events and located radio with full lifecycle/native adapters ([scope](research/QVM_LOCATION_ALLOCATION_BATCH.md#next-work-re-1044)).
|