{
  "capture": [
    {
      "input": "baseline quantity=5 price=1200 limit=10000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: baseline, quantity: 5}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: true, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 6000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: true, limitPence: 10000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: ACCEPTED}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: ACCEPTED, outputCount: 1}",
      "clockValues": [
        1700000000001,
        1700000000001,
        1700000000001
      ]
    },
    {
      "input": "over_limit quantity=5 price=1200 limit=5000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: over_limit, quantity: 5}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: true, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 6000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: false, limitPence: 5000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: REJECTED_LIMIT}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: REJECTED_LIMIT, outputCount: 2}",
      "clockValues": [
        1700000000003,
        1700000000003,
        1700000000003
      ]
    },
    {
      "input": "out_of_stock quantity=3 price=1000 limit=5000 stock=2 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: out_of_stock, quantity: 3}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: false, stock: 2}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 3000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: true, limitPence: 5000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: REJECTED_STOCK}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: REJECTED_STOCK, outputCount: 3}",
      "clockValues": [
        1700000000005,
        1700000000005,
        1700000000005
      ]
    },
    {
      "input": "failed_lookup quantity=1 price=1000 limit=5000 stock=2 riskUnavailable=true",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: failed_lookup, quantity: 1}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: UNAVAILABLE}",
      "clockValues": [
        1700000000007,
        1700000000007,
        1700000000007
      ]
    },
    {
      "input": "at_limit quantity=5 price=2000 limit=10000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: at_limit, quantity: 5}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: true, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 10000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: true, limitPence: 10000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: ACCEPTED}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: ACCEPTED, outputCount: 4}",
      "clockValues": [
        1700000000011,
        1700000000011,
        1700000000011
      ]
    },
    {
      "input": "recovery quantity=1 price=2000 limit=10000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: recovery, quantity: 1}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: true, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 2000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: true, limitPence: 10000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: ACCEPTED}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: ACCEPTED, outputCount: 5}",
      "clockValues": [
        1700000000012,
        1700000000012,
        1700000000012
      ]
    },
    {
      "input": "second_boundary quantity=3 price=2000 limit=6000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: second_boundary, quantity: 3}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: true, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 6000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: true, limitPence: 6000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: ACCEPTED}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: ACCEPTED, outputCount: 6}",
      "clockValues": [
        1700000000014,
        1700000000014,
        1700000000014
      ]
    },
    {
      "input": "one_penny_over quantity=1 price=6001 limit=6000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: one_penny_over, quantity: 1}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: true, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 6001}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: false, limitPence: 6000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: REJECTED_LIMIT}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: REJECTED_LIMIT, outputCount: 7}",
      "clockValues": [
        1700000000015,
        1700000000015,
        1700000000015
      ]
    },
    {
      "input": "both_refuse quantity=20 price=1000 limit=6000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: both_refuse, quantity: 20}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: false, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 20000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: false, limitPence: 6000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: REJECTED_LIMIT}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: REJECTED_LIMIT, outputCount: 8}",
      "clockValues": [
        1700000000016,
        1700000000016,
        1700000000016
      ]
    }
  ],
  "replay": [
    {
      "input": "baseline quantity=5 price=1200 limit=10000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: baseline, quantity: 5}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: true, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 6000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: true, limitPence: 10000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: ACCEPTED}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: ACCEPTED, outputCount: 1}",
      "clockValues": [
        1700000000001,
        1700000000001,
        1700000000001
      ]
    },
    {
      "input": "over_limit quantity=5 price=1200 limit=5000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: over_limit, quantity: 5}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: true, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 6000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: false, limitPence: 5000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: REJECTED_LIMIT}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: REJECTED_LIMIT, outputCount: 2}",
      "clockValues": [
        1700000000003,
        1700000000003,
        1700000000003
      ]
    },
    {
      "input": "out_of_stock quantity=3 price=1000 limit=5000 stock=2 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: out_of_stock, quantity: 3}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: false, stock: 2}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 3000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: true, limitPence: 5000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: REJECTED_STOCK}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: REJECTED_STOCK, outputCount: 3}",
      "clockValues": [
        1700000000005,
        1700000000005,
        1700000000005
      ]
    },
    {
      "input": "failed_lookup quantity=1 price=1000 limit=5000 stock=2 riskUnavailable=true",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: failed_lookup, quantity: 1}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: UNAVAILABLE}",
      "clockValues": [
        1700000000007,
        1700000000007,
        1700000000007
      ]
    },
    {
      "input": "at_limit quantity=5 price=2000 limit=10000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: at_limit, quantity: 5}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: true, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 10000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: true, limitPence: 10000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: ACCEPTED}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: ACCEPTED, outputCount: 4}",
      "clockValues": [
        1700000000011,
        1700000000011,
        1700000000011
      ]
    },
    {
      "input": "recovery quantity=1 price=2000 limit=10000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: recovery, quantity: 1}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: true, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 2000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: true, limitPence: 10000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: ACCEPTED}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: ACCEPTED, outputCount: 5}",
      "clockValues": [
        1700000000012,
        1700000000012,
        1700000000012
      ]
    },
    {
      "input": "second_boundary quantity=3 price=2000 limit=6000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: second_boundary, quantity: 3}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: true, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 6000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: true, limitPence: 6000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: ACCEPTED}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: ACCEPTED, outputCount: 6}",
      "clockValues": [
        1700000000014,
        1700000000014,
        1700000000014
      ]
    },
    {
      "input": "one_penny_over quantity=1 price=6001 limit=6000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: one_penny_over, quantity: 1}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: true, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 6001}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: false, limitPence: 6000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: REJECTED_LIMIT}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: REJECTED_LIMIT, outputCount: 7}",
      "clockValues": [
        1700000000015,
        1700000000015,
        1700000000015
      ]
    },
    {
      "input": "both_refuse quantity=20 price=1000 limit=6000 stock=10 riskUnavailable=false",
      "nodeObservations": "- input: { thread: main, method: onOrder, annotation: OnEventHandler, id: both_refuse, quantity: 20}\n        - risk: { thread: main, method: check, annotation: OnTrigger, riskStatus: CLEARED}\n        - stock: { thread: main, method: check, annotation: OnTrigger, stockAvailable: false, stock: 10}\n        - value: { thread: main, method: calculate, annotation: OnTrigger, valuePence: 20000}\n        - limit: { thread: main, method: check, annotation: OnTrigger, withinLimit: false, limitPence: 6000}\n        - decision: { thread: main, method: decide, annotation: OnTrigger, outcome: REJECTED_LIMIT}\n        - recorder: { thread: main, method: record, annotation: OnTrigger, recordedOutcome: REJECTED_LIMIT, outputCount: 8}",
      "clockValues": [
        1700000000016,
        1700000000016,
        1700000000016
      ]
    }
  ]
}