{
  "$schema": "rulealize/registry/plugin/v1",
  "id": "Rulealize.Plugin.Sequence",
  "namespace": "seq",
  "prefix": null,
  "admitted": "1.2.0",
  "latest": "1.5.0",
  "description": "Generation, transformation and aggregation over Rulealize sequences: seq.of, seq.range, seq.any, seq.count, seq.takeWhile, seq.selectMany, seq.replaceAt, seq.scan and friends.",
  "repository": "https://github.com/reny-develop/Rulealize.Plugin.Sequence",
  "license": "Apache-2.0",
  "specification": "https://raw.githubusercontent.com/reny-develop/Rulealize.Plugin.Sequence/main/doc/specification.md",
  "forms": {
    "seq.any": "{\n  \u0022op\u0022: \u0022seq.any\u0022,\n  \u0022source\u0022: \u003Cexpression:Sequence\u003E,\n  \u0022as\u0022: \u0022\u003Cname\u003E\u0022,              // optional\n  \u0022predicate\u0022: \u003Cexpression:Boolean\u003E   // optional\n}",
    "seq.concat": "{ \u0022op\u0022: \u0022seq.concat\u0022, \u0022of\u0022: [ \u003Cexpression:Sequence\u003E, … ] }",
    "seq.count": "{\n  \u0022op\u0022: \u0022seq.count\u0022,\n  \u0022source\u0022: \u003Cexpression:Sequence\u003E,\n  \u0022as\u0022: \u0022\u003Cname\u003E\u0022,          // optional\n  \u0022where\u0022: \u003Cexpression:Boolean\u003E   // optional\n}",
    "seq.elementAt": "{\n  \u0022op\u0022: \u0022seq.elementAt\u0022,\n  \u0022source\u0022: \u003Cexpression:Sequence\u003E,\n  \u0022index\u0022: \u003Cexpression:Number\u003E\n}",
    "seq.empty": "{ \u0022op\u0022: \u0022seq.empty\u0022 }",
    "seq.of": "{ \u0022op\u0022: \u0022seq.of\u0022, \u0022of\u0022: [ \u003Cexpression\u003E, … ] }",
    "seq.range": "{ \u0022op\u0022: \u0022seq.range\u0022, \u0022from\u0022: \u003Cexpression:Number\u003E, \u0022count\u0022: \u003Cexpression:Number\u003E }",
    "seq.replaceAt": "{\n  \u0022op\u0022: \u0022seq.replaceAt\u0022,\n  \u0022source\u0022: \u003Cexpression:Sequence\u003E,\n  \u0022index\u0022: \u003Cexpression:Number\u003E,\n  \u0022as\u0022: \u0022\u003Cname\u003E\u0022,            // optional\n  \u0022value\u0022: \u003Cexpression\u003E\n}",
    "seq.scan": "{\n  \u0022op\u0022: \u0022seq.scan\u0022,\n  \u0022source\u0022: \u003Cexpression:Sequence\u003E,\n  \u0022as\u0022: \u0022\u003Cname\u003E\u0022,            // optional: the element\n  \u0022seed\u0022: \u003Cexpression\u003E,      // what the first step starts from\n  \u0022acc\u0022: \u0022\u003Cname\u003E\u0022,           // what the step before made\n  \u0022next\u0022: \u003Cexpression\u003E       // what this step makes, reading both\n}",
    "seq.select": "{ \u0022op\u0022: \u0022seq.select\u0022, \u0022source\u0022: \u003Cexpression:Sequence\u003E, \u0022as\u0022: \u0022\u003Cname\u003E\u0022, \u0022select\u0022: \u003Cexpression\u003E }",
    "seq.selectMany": "{\n  \u0022op\u0022: \u0022seq.selectMany\u0022,\n  \u0022source\u0022: \u003Cexpression:Sequence\u003E,\n  \u0022as\u0022: \u0022\u003Cname\u003E\u0022,\n  \u0022select\u0022: \u003Cexpression:Sequence\u003E\n}",
    "seq.skip": "{ \u0022op\u0022: \u0022seq.skip\u0022, \u0022source\u0022: \u003Cexpression:Sequence\u003E, \u0022count\u0022: \u003Cexpression:Number\u003E }",
    "seq.sum": "{\n  \u0022op\u0022: \u0022seq.sum\u0022,\n  \u0022source\u0022: \u003Cexpression:Sequence\u003E,\n  \u0022as\u0022: \u0022\u003Cname\u003E\u0022,            // optional\n  \u0022select\u0022: \u003Cexpression:Number\u003E   // optional\n}",
    "seq.take": "{ \u0022op\u0022: \u0022seq.take\u0022, \u0022source\u0022: \u003Cexpression:Sequence\u003E, \u0022count\u0022: \u003Cexpression:Number\u003E }",
    "seq.takeWhile": "{\n  \u0022op\u0022: \u0022seq.takeWhile\u0022,\n  \u0022source\u0022: \u003Cexpression:Sequence\u003E,\n  \u0022as\u0022: \u0022\u003Cname\u003E\u0022,\n  \u0022predicate\u0022: \u003Cexpression:Boolean\u003E\n}",
    "seq.where": "{ \u0022op\u0022: \u0022seq.where\u0022,  \u0022source\u0022: \u003Cexpression:Sequence\u003E, \u0022as\u0022: \u0022\u003Cname\u003E\u0022, \u0022predicate\u0022: \u003Cexpression:Boolean\u003E }"
  },
  "versions": [
    {
      "version": "1.2.0",
      "abstraction": "0.3.0",
      "framework": "net10.0",
      "operations": {
        "expression": [
          "seq.any",
          "seq.concat",
          "seq.count",
          "seq.elementAt",
          "seq.empty",
          "seq.of",
          "seq.select",
          "seq.selectMany",
          "seq.skip",
          "seq.take",
          "seq.takeWhile",
          "seq.where"
        ],
        "effect": [],
        "schema": [],
        "draw": []
      }
    },
    {
      "version": "1.3.0",
      "abstraction": "0.3.0",
      "framework": "net10.0",
      "operations": {
        "expression": [
          "seq.any",
          "seq.concat",
          "seq.count",
          "seq.elementAt",
          "seq.empty",
          "seq.of",
          "seq.select",
          "seq.selectMany",
          "seq.skip",
          "seq.sum",
          "seq.take",
          "seq.takeWhile",
          "seq.where"
        ],
        "effect": [],
        "schema": [],
        "draw": []
      }
    },
    {
      "version": "1.3.1",
      "abstraction": "0.4.0",
      "framework": "net10.0",
      "operations": {
        "expression": [
          "seq.any",
          "seq.concat",
          "seq.count",
          "seq.elementAt",
          "seq.empty",
          "seq.of",
          "seq.select",
          "seq.selectMany",
          "seq.skip",
          "seq.sum",
          "seq.take",
          "seq.takeWhile",
          "seq.where"
        ],
        "effect": [],
        "schema": [],
        "draw": []
      }
    },
    {
      "version": "1.4.0",
      "abstraction": "0.4.0",
      "framework": "net10.0",
      "operations": {
        "expression": [
          "seq.any",
          "seq.concat",
          "seq.count",
          "seq.elementAt",
          "seq.empty",
          "seq.of",
          "seq.range",
          "seq.replaceAt",
          "seq.select",
          "seq.selectMany",
          "seq.skip",
          "seq.sum",
          "seq.take",
          "seq.takeWhile",
          "seq.where"
        ],
        "effect": [],
        "schema": [],
        "draw": []
      }
    },
    {
      "version": "1.5.0",
      "abstraction": "0.6.0",
      "framework": "net10.0",
      "operations": {
        "expression": [
          "seq.any",
          "seq.concat",
          "seq.count",
          "seq.elementAt",
          "seq.empty",
          "seq.of",
          "seq.range",
          "seq.replaceAt",
          "seq.scan",
          "seq.select",
          "seq.selectMany",
          "seq.skip",
          "seq.sum",
          "seq.take",
          "seq.takeWhile",
          "seq.where"
        ],
        "effect": [],
        "schema": [],
        "draw": []
      }
    }
  ]
}
