static L gazelle_possibleNextRulesForPreContext(LS preContext, O... _) { GazelleEvalContext ctx = gazelle_newContextFromParams(_); gazelle_dropRulesNotOnInput(ctx); ctx.engine.dropRulesWhere(r -> !empty(r.purpose)); ctx.engine.dropRulesWhere(r -> gazelle_historyLevelRequired(r) > l(preContext)+1); // TODO: filter more ret ctx.engine.rules; }