{
  "record": {
    "schema": "flowrs.registry.record/1",
    "package": {
      "name": "node-scale",
      "version": "0.1.0",
      "kind": "widget"
    },
    "hash": "sha256:7680dc31a561417dda716fb78482c614617d9af2beea6674a6154171175c23a8",
    "manifest": {
      "schema": "flowrs.package/1",
      "name": "node-scale",
      "version": "0.1.0",
      "kind": "widget",
      "licence": "Apache-2.0",
      "description": "Scale: out = in × gain. The worked example of a widget defined outside flowRS's core.",
      "provides": [
        "node.scale"
      ],
      "tests": [
        "tests::an_outside_node_is_everywhere_a_builtin_is_and_is_not_a_builtin"
      ],
      "needs": {
        "network": [],
        "filesystem": []
      },
      "ports": [
        {
          "of": "node.scale",
          "port": "in",
          "output": false,
          "unit": "$T"
        },
        {
          "of": "node.scale",
          "port": "out",
          "output": true,
          "unit": "$T"
        }
      ]
    },
    "conditions": [
      {
        "id": "compiles",
        "status": "passed",
        "how": [
          "observed"
        ],
        "detail": "it builds offline, confined, against flowRS's crates and lock (1 test binaries)"
      },
      {
        "id": "tests",
        "status": "passed",
        "how": [
          "observed"
        ],
        "detail": "1 passed, each binary confined (1 named in the manifest, all passed); 0 ignored; doc tests are not run"
      },
      {
        "id": "no_runtime_install",
        "status": "passed",
        "how": [
          "observed",
          "static"
        ],
        "detail": "no program started and nothing written outside its directories, built and run confined; every crate is one flowRS's lock pins; no process or library loading in its Rust (435 other denials, reads and lookups, recorded)"
      },
      {
        "id": "no_undeclared_network",
        "status": "passed",
        "how": [
          "observed",
          "static"
        ],
        "detail": "no socket and no name lookup, built and run with the network denied; no socket API or network crate in its Rust"
      },
      {
        "id": "units",
        "status": "passed",
        "how": [
          "observed",
          "static"
        ],
        "detail": "2 ports read from its code, each declared, each as the manifest says"
      }
    ],
    "toolchain": {
      "rustc": "rustc 1.99.1 (58cf8f9c3 2026-10-13)",
      "cargo": "cargo 1.99.1 (5f94df478 2026-08-27)",
      "host": "aarch64-apple-darwin",
      "sandbox": "seatbelt",
      "observation": "kernel reports read back (canary seen)"
    },
    "flowrs_commit": "c8e377b93ba5c53a8bba207c3f050f8bc8a42a15",
    "verified_at": "2026-10-31T13:43:33Z",
    "verifier": "flowrs-registry 0.1.0"
  },
  "signature": {
    "v": 2,
    "key": "dc5d537054e6ca29b068f7a4375d0e8140af371410bd357235a146ef44d94ed33b6dfbe9c7a7ac772ec9d9ddaae7ca7b8028c9e163e39bfef3192748d9dd4e9ec4e6a705462ab98fbf030e294f78eadadd10122b0bd93a146be65c19751d4ec6eabf441d7e841630c495b2d57f41283232c45b3b4bb774c41be1bce61d551264603a500f3f387950685e4576dc280247b88fcf4dec7ee268e4d487b127d0bf79fd7a9d337e51d2c29d981f3f1b89afffbabff3f20077a90af83de9b4e0c75793d7d988857556d556e7c137c3917468f1d3a09a2066145d371ddf0ac2c37372974741d4e442e02a3c5e4c5e41f7222a54b3b3727610118f93b3d5ffc2bd2d2f7f91c8335ec0f840bfc4de7a43575f3b2db7eecb6f9585a37fb5908493d024d74e63b2dc945ea2f18ce3c542cacc0d64abeea6cb301ca8b22dc8d3cc3b7ee1b0999b62d6e8221d2c6b7f527a16ddaf9a8fb8fd2d94d90f6f4e6738015d9fd0e9fd47ff80c3aea251b570ebd0f16cb917fa39d6adca0e5359ccae44a4f4668314c263d85c336bb01d981e87ba267655232b095ba02bfc402257a5a1832f2a55f18aa5e94a75add7c7b77ce763773d3f57e326e45a7aa5de1bd6e3ee0b2f87a565494732a5c9bc15f442358a44f5093f32b7e4ab176afde3af7eff0af88cf4ee1870616252e75c639b54e7f4ccda08c7139488356b71fedae03c6c30a767311a1a7170ee04423d3476c85102287cedfaa5935a3d69737903a479f3051b254e3e90b97802497ec4ce32a3798df2436a1ac684b41c661f395251a286ea179c6011b98fc6cf34fe2408a2968478e30bb06e62ac6477cd32d5d9d560f65c5ae9d0ff66721629f8c00f06ebd229b68ea17dfbedbc3f05cf6211e26c163eabd213127808fbef5ac91d7f7cf0da00a96a40af412860080c7c558ae1e820bd55b6be4dd2e2337bdd783a081863b89185e1d9c09595ad43b7a6aba9f37546ca8bcce7eb674e0077732839c9af8337c01f48b6b75faa9f3390052b3f8246b33140f88401adbaeaaf82f50c75cd6393c83f4e742888d6952dddca0114e114758c124dfb77121fd348bc83588155ff82ba1a5dea3cc9aeaee08c5d853b7ac6b6066efe849f731ceb5594027bf8d8dc7984924d901cee0e1dc3b097f7d4616c689f9b082bb8d88a13846afdd96206a09b6f208fb85d830d429da755e404a8d48d2d5df94ecfa19c1f7ac92b9f8e2d1fe515932571f96acb264209acc35ed3ae5ab790fbc9dcb2e30a7dfdd61c944e5e6930a0344b38697887dc68eed1574750003138fc181519a56598f53bb216e264d7a9ea990d87194798e62153189e7bb5c015bb4d0dca87d453a50b5cfe93e8929366d2f743c40074bbb88f9b62ce65676685db60a21ac41761b08e1d9a9604a10ac7e38cc90c7dd610c69d9751d77fb13b0eb91df5ecb145b48b85c039fecf576d65bb3c29ca5273e0d5bacf0c7ef1eb61a94cda9a1a2002ef69e62578069533d287d2efb01ded3e44961ae9ea096f90ecc95930c25a3db3e3a8a116b23e33126c932bd6f3e427d559d64272e03f94c1e3aeceed574aa4c2c5745ebe5ac61db1bc7b4ab199ec55fee156be6ae5ba44296074237f355e4df01d13a8a212fa731c6510d0c43a5fc338a3392272550a10a328cdb1409e9133bd0d79801bc6aa99e361930bee2946d2f7f705eb1be381fbdd6a0923cfc1778607577473344a3b85b67be5e31f5c2271abdccd74e7b149dece024919f358f6adbe46b76e74d8dc8a0ece0a0d278b1de87f67f0a7e6cf54f3cfd54c0a6a5b2143fd900d90c9be7626617ecabb8439c34ad2a4853a6593d51c48e11a31b442d18dab3b4bfec198115c0e1db747f1de7b708d0e95f3db3e8c2eb3baa23ad6d0312ee315a7c0de1bd852b1cb68d02334b8e3187ffe5cb5b6cd4b01a43329899db572f61d6e5dfe22c3862403bb5c836ecdee4206206ff549e1587f788a38c3af0a36db60e70bce08b7318470a0fc58efccf1e13a362b010a29df4c5ebbc8bbfeb26b35ab8aee6b46a223b9784467b9f5f864818e1d5d466d059a0cf7a3c41f5ac308d25a66c4c7611fcec595253a8159f0d0a2d34c7aaa1d6b27162046a95185b68121b81a618750f8ba84f401f217aeb664a66f6357bfc7b1702b6fd34ffe1a32010584c3a84468de88a92c93ab5bd840ba52cc8ea4e9a68ded4acfc624031ec2443287877886db6efc64af01f7bf80782f8c5b3dda3b4cb5c3425028d7ef7f8f4177d437a61787ad6b325cd79ddcc3bfd9e1092ef118524e6c7c745b28ba8407ced9055d48c7275e1caadb88ea67bfdbe66563603de244bd3740b82153df340cc70c6ca947d6da9eb126e627666370e266aab079582e633fbad606c1535e4a15a25acb5efd4ae0cfeb03eeeb01a52d1ac3a5486cde1a151f7950fd5b68df976e843ceaa4d1e7c1644fa82984ec7d8405c6950674c3c3eeeb8a28aba272a244b26a11e07935a1ae362b1b3ddf900006fccc7b798b1ee73c8d4ae2245fad870924c4ff82ca92befb3aa6c960a19983c77f9d563d6fd529600f19897359ff641cd8db26cf065375094b0508c822809dd888cb3de0248177825e042f759505459036177c9c2e38f81806fdd183579f135019492e1e05b64a28fee0a7f48903aa9bf4d3a5bc73f0b15db50e2ead4b03e09c84d5687a17b5f5dd59e84934a5793994d73f74ae58fdb78030888cf8bad5c6f22942b241d8ee50be649668b15571968c796afcb5f749787bced05678144b2185aee171244291d7caf3d6a3c89b82f0ba02166938",
    "key_id": "v2:fa1a50ef56073d416f25e62fa6c5e7ef069f20766a1ef48ea0ec91d241df89cf",
    "ed25519": "bc2e9b58d88db4fbdfe3cb9218634ee4b836186317642f30e0ce10bf8cec3772ee9e7b0ec05af5ad486094e0390063a4ec2c36941bcdc2a46bec3c6391830f0b",
    "ml_dsa_65": "a82bca426ecb7282c75f8dee7d439a29b6e64996b5e4f9f72114ab8881963030a27231236cf8e60499e26703b76cf1ce4d586802e576789e8469d7d8e9e52309d2e3c74057bd4c8b33b6da15e530482c1e92d07db75dc175e374d1283af5d6c8ad23952f5a5b7d2d895f32efb07ee9cdb47801cd98d80bdd8d74bb597dae1866ba5dd7630cb54f1276b34419d88f5a31c85d09cd58108e7c5cf4d62f889cf48cd345f42d02de7fce693bc7e47be6353ed74c68b1b661e885a7841bc15d07a1dd9d5043656ca003aec50c2e74b048de694bedf5c7aba5030ba0807bc6f9e2ccb89986d940440845930c18ed6629ba86a7a08cdf37955313fb216645c0667e25b589d462bbe9d9fce2d572d16812657f722fc2a90dc2d22d5bc431c61e038835e96ab52ab7f1f191143c456a6f4e6e53b6897a4c70b8f1113e2bf3c247dfb4146064ee90c271a0959439b08bf79528574d83409208239ed56487dbd21e410cd129c5c9c0779e628deffbaf79755e4469392b2c0bd61fa116b7e5cf45b0588b42fa222e29db2c86718002f0ec6c0717e5d98b552dc9f2c8fc0fdb4ce51d732dbc4a3b046063f2834b17af3b7ef7b43a136b054934dc4bbcc9f225827141c373281892fa59827133ff58b6e5a9d5eadee7884bd409915667dc25b39a2afac06eece1d599a6b7e5d2bfbd780dc8a3f62753bf0c49b432ae1507dc6b023c0e050a9907d8764867255643a054dc00fce90b259567f25f2463025110299163779ce0a33c569ac5e1936c3a0647fc949cec71d1ba5669a15f8239fa35e82274d889e1465b49beda2f775f0e05fe902f895d6c7f29cf51a34e708dd7421529d453d5cccbafc3393361efa7475e83a6c63b5700b820ab839b6690849378c6272e230e596822e492ed4867e2397ac16eef92a315ef9e1c17b6a1b48246fe2b5daea168eb7b20078eb6ab817b58f51b1f7eec478f05a3288432d58f6d519edd5f57b725f4985de244a1c5d78070f1eb3e653ee5d6eac5fa3a478a4920d13249081a2cf22da10f30b03eccb692d58518c44d87ff14bd8370dd80bc2d3e3e8315c3b65e02adbe06de5aa70fc1adaf96d74e60600f77279b57ba85106072418110fd5dce47b9ea6eba6914de447fccaf7c83c8fb850994f6675788328b0681c90fb50f7683f1289a96516fef33440a5b051d29722088798afbf4b6d3f826d5d0ce04beeb177ebf3f377108b968f30a3d9f59e51f58eddc168c1dca1bc3023a6906180b720bcb3b49cc825e3054f60e808fecb64e66b527bd397ed12f5dc73514a0fddfe09e5f05a0186a4ac61c29e2ae42a20b6c497caca8a15d90c168e80dc00ca72a363360f5b6d627ff308ff2f6c0b5b372f5ad62e45ab69daffa08d4c3c648f3959cb629032a8ada2d65e41826de2fd8ed4178a57a0dbdd12cb08612cc2ad6fcee79e76d7080d22a5a333ca57f68cd93b67970499860b6db31ee6621f1ee9c0246d6003ac46680bea78c9b1007db8a87b2e06cbb46a3dc1ac963195092c1981e44cc16260ab31a59dfccc90846a8e474a94a70fd0b7b3d7be54cfc82b2afc18e353b2f977d53cf079126edd63f9b6af9e2e9fd5d8cdfcc18b1b3e5a4df7ba1f8d4035bf4117d0e267167c914a56da4916a74ecc0e343723b4be7f8563040e1114921fdf99723ae71acc0fde594cd7fca2a6699cb7019a86be3fc1792f291bdb7749fe35e7e5778958d5d019891a01f913c018491e4bb658861d46f7007252d28521cf356506f8d3a30ca2d9cae2eef161739f95cdde3875ae83dd5a9d0b7bbdfb9a06c5f2615dbaf1fa38229dcc9bec5c069875aa2980b60a7e106c1ac39f2f0b6993805a44a1c5d105574733a2765abb31498a055dc5c0fe1c2f0771fa13bbbc936da3f203e19475d97da576240c087f6a7338f6110f5a7fa1ba80cddef40c54256d0c6cb9e3c66128c481cff00ae61d435ffd4405bdad229579f72de7c84948e4a33682043127003a95f5a0986ace98196be4d877d02919b0679d64ee581604ec8c44efabd797edd86db0d25647c2351ac9a9837a644ec6de6a7f1b62e6a32a877a2169b6747f9036484b747af0c86b97afcd8648c523a6b68429af7f44fe0c819d08437fae621118d8eb0445e5f1ce0e49d08d8b3c1a0f329540b0baab3d6ea92e674198f2d2b8f9be501b1483ae7141791ac11df0b4bd88de433de138738565b090ced744b3b86fbfc49583853e4ebc9fcecd54fdd1158d20478fcc2deb5c90033cc2068b1da803f82092215ed5f27fdb6ad8dd8d540d432eddb94a07c48099f5bca7e8cdf411ace9a89f6167b33b56c383b5bf97cc2557085c22a21ee6611e8f864bb05a5f576921451a0397f925d208253d711837f189e4c3c52f657ff3aeac4d3b42ac38ae9c98966aad6d24dafb773f989162db1c13fcc3fd035b1b5812455a9e61b866b9e5dce6c68e8005cf689ad4b223359612883f4eec2700084a13d69abc51598f08504e1e611ef0e3504dd62d1639ab9a05c4a55f6cc6ea2f4efa3bc26fbffb79f94f7789c35a5513c4342ccad37279f99efdb816a7f18f38c79d7efab1e28f760c3dcd5b3da5681c025161df554c889c582899052c7ba186af62eed01aac3685142ed7611540461a389074ee731f72ff6419f70e6d1db666fcd4bfcafab012f37d1897c4d166a6c83d69ba6b579365f72dcfe05dfc45e435e998d6eb8c6f21c34b956a1df633648c0443f6f651c189a7d2b301bc6af6134dfbd9caf12959dea5b2b56ee6eaa0abb8419da1a4e5d0d6fe07ed299d356c981ceff65236fbcc084cc893b3a729cb4e882de4442041dc999a414259afdcc36b0e046fabf7ecc7235967fe3143704c9ad7f92fad9c02c54bffae0936839f08763a0b9932b3f7ae3f1378be3f96f740dfe5110d69168a9502e54162b4f76087233843940cffd791dc6862d83f389e0a2d9124cb76c444772355064ac98e476cb34d575a86961df93afc2d9b819e8f5c310e21967bb638be99855c65009835db6e8b4286cd9e807e31f25904741a66548ab04dd9d64ff286e7ce4124dfe121c21169b276a2ff642877702cc6719113307f45dd1cd2970d1218732a2640325e8d94b9c5b34c6f4e55b29d6e76b9295a2108e9e2d1d6b778d30c7bfe009f34f9e4b9cad9440bb257013b1225a309ad48a6e90890c832315bf3aea0d22bc847edfad6ac5529ddde1856008a6237c2f380f0b7d154adf92c1c84dbc96497e15f1b4b8a4e3cb244855891e1e13958b8a1e1d9da6e0e31df37936830e57a0a3c0fa737825f166bf8f1e62ae5ff434bf93c1bc376d3f52de90541f9bebce6a4f2564489c879da9a138a8619627c334c646fa14353960b3f1d0265c209f78314377a11e951f6229bc3173af78fb71537c41b2b48ace74a0ed2a12fbc684785bcafaf5b8005b09e53480c98f31224184e34291a815b2d5ed2ffc5a189d126cbd69034ac15c082e047e8c4c0da2e8f10f91780d00694b3ad718c7e729ea4637883bbe6aa6ef3bed4e48101f0d56086787a8935eb87288e3a9178db48770c7c04296af85807209b3f1237d02821a95d35e0d47d7dbdb780e57ca10bd000809f44f638b0d6ab542f2e2e6735e489c6423986190898a4b11ed68f07e2d11a4ccd3b1ec6d21727dd5fb970242b0a9125cefc0c0a638a2c925a2318690235e965c389ecbcdcfca75923bc8c3e2a73fbdff2c3e0af621b832ed75b03d5856aea8f8693e797e3030af07805800acd64d2c4cb377c82255d9a175dc051c25750a7c7a01d07ba67df5c74747753de8fba10a2139d01d0a80f1c833d39beba06515736ee722fe084c5443dc691fad98bd7b6eeac820e030f86031521440eeafa1ceab54240d2eaba1cf1cf10dbd0f27a40720cc7fa6c9b3559fbc527ce54d98a3615d7245cfed28f6953b14b092748a9be67393100a12ed238e09600142eef9c008f828a743d123b3b09f53a2f919e4c546936579ea9038d5d4eb9e6c9b0a55060f9b2142fb7683d9efa5dec126bad8004d82905aac0554fdd1496d78b7d57bb8468570a37e0ddac84b399230a6c08e12cdc3e63947f3413c15d5f7f3d9d3085e5a20beeece6ae0b2d49d720783325910d23b0a107812c5a9933d041f6b029e969bb28422c507dc94f1a765b24eb380a5e8729a41ec26e705cec2bec0beceb7edba74d84b2746e850edb588602c288facfa59df34f8e224da4d078b55cd9b0fc117bf606552846dc745043b038bceea22921f43f8438f3f93945abc7b3a7ec2f04758da03ae6942848f7f04f6bcb4ff6d62490f88cae24c6f71500578a668dea219c93643328131bf1ef89751bb2f3461d41e7f2823a187d6743c01b8d37e26bde2f186857f4ada07fb2f1c6389af4d202121374bb2cc41f4f272ae892f0f74c0c566d0bb1a1d9a7a72d1c0f0563e06cf076414a677c664110af4590b070c9dd597d1ca6f6b4488cb34d5a651b4b8b72ccbc2ba7ad1cb81507c636ce0894e3bd98f65f8072f58fb35a227d6b8e74a8d687b3a8d95d67ddcbf9b6f68bf83ee6b086e65a7ab1436379a0c2a04b510acc0e2f8084be2e1b199754f1017ac0b1062d60eda17314971747e8089f1f935bac9dae4ebf9102935477477858add33358abcbfccda133f63a46669bced00000000000000000000000000000a111a212529"
  }
}
